mldonkey-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mldonkey-commits] mldonkey distribChangeLog src/daemon/common/com...


From: mldonkey-commits
Subject: [Mldonkey-commits] mldonkey distribChangeLog src/daemon/common/com...
Date: Sun, 11 Jun 2006 17:32:28 +0000

CVSROOT:        /sources/mldonkey
Module name:    mldonkey
Changes by:     spiralvoice <spiralvoice>       06/06/11 17:32:28

Modified files:
        distrib        : ChangeLog 
        src/daemon/common: commonComplexOptions.ml commonSwarming.ml 

Log message:
        patch #5167

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.876&r2=1.877
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonComplexOptions.ml?cvsroot=mldonkey&r1=1.55&r2=1.56
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonSwarming.ml?cvsroot=mldonkey&r1=1.39&r2=1.40

Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.876
retrieving revision 1.877
diff -u -b -r1.876 -r1.877
--- distrib/ChangeLog   9 Jun 2006 22:20:18 -0000       1.876
+++ distrib/ChangeLog   11 Jun 2006 17:32:27 -0000      1.877
@@ -15,6 +15,7 @@
 =========
 
 2006/06/11
+5167: Swarmer: Fix saving ini data for merged downloads (pango)
 5166: Swarmer: New module to abstract verification bitmaps (pango)
 
 2006/06/07

Index: src/daemon/common/commonComplexOptions.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonComplexOptions.ml,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -b -r1.55 -r1.56
--- src/daemon/common/commonComplexOptions.ml   1 Jun 2006 01:40:28 -0000       
1.55
+++ src/daemon/common/commonComplexOptions.ml   11 Jun 2006 17:32:27 -0000      
1.56
@@ -143,7 +143,7 @@
   
 let files = 
   define_option files_section ["files"] 
-    "The files currently being downloaded" (
+    "The files currently being downloaded, primary downloads must come first" (
     listiter_option (FileOption.t false)) []
 
 (*************************************************************************)

Index: src/daemon/common/commonSwarming.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonSwarming.ml,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- src/daemon/common/commonSwarming.ml 9 Jun 2006 22:20:18 -0000       1.39
+++ src/daemon/common/commonSwarming.ml 11 Jun 2006 17:32:27 -0000      1.40
@@ -876,15 +876,23 @@
   t.t_chunk_of_block <- [||];
   t.t_blocks_of_chunk <- Array.create t.t_nchunks [];
 
-(* invariant: primary frontend is at the head of swarmer's [s_networks] *)
+(* invariant: primary frontend is at the head of swarmer's
+   [s_networks], and is the first associated with the swarmer *)
   if is_primary then begin
     t.t_primary <- true;
-    s.s_networks <- t :: s.s_networks;
+    assert(s.s_networks = []);
+    s.s_networks <- [t]
+    (* was   s.s_networks <- t :: s.s_networks; *)
   end else begin
+    match s.s_networks with
+    | tprim :: _ ->
+       assert(tprim.t_primary);
+       if file_disk_name t.t_file <> file_disk_name tprim.t_file then
     (* TODO: transfer data into swarmer instead of discarding it *)
     Unix32.remove (file_fd t.t_file);
     t.t_primary <- false;
     s.s_networks <- s.s_networks @ [t];
+    | [] -> assert false
   end;
 
   (match s.s_networks with
@@ -3255,7 +3263,15 @@
     HS.iter (fun s ->
       if s.s_networks <> [] then
         list := s :: !list) swarmers_by_name;
-    swarmers =:= !list
+    swarmers =:= !list;
+    (* put primary frontends to the head, so that swarmers' invariants
+       can be verified while downloads are being restored from ini files *)
+    let primary_files, secondary_files = 
+      List.partition (fun file -> 
+       match file_files file with
+       | primary_file :: _ when primary_file == file -> true
+       | _ -> false) !!CommonComplexOptions.files in
+    CommonComplexOptions.files =:= primary_files @ secondary_files
   );
   set_after_load_hook files_ini (fun _ ->
     List.iter (fun s ->




reply via email to

[Prev in Thread] Current Thread [Next in Thread]