[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co...
From: |
mldonkey-commits |
Subject: |
[Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co... |
Date: |
Fri, 16 Jul 2010 13:57:39 +0000 |
CVSROOT: /sources/mldonkey
Module name: mldonkey
Changes by: spiralvoice <spiralvoice> 10/07/16 13:57:39
Modified files:
distrib : ChangeLog
src/daemon/common: commonUploads.ml
Log message:
patch #7210
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1440&r2=1.1441
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonUploads.ml?cvsroot=mldonkey&r1=1.56&r2=1.57
Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1440
retrieving revision 1.1441
diff -u -b -r1.1440 -r1.1441
--- distrib/ChangeLog 16 Jul 2010 13:56:35 -0000 1.1440
+++ distrib/ChangeLog 16 Jul 2010 13:57:38 -0000 1.1441
@@ -15,6 +15,7 @@
=========
2010/07/16
+7210: upload scheduler: correctly handle clock jumps (ygrek)
7219: fsync rename options files (ygrek)
2010/07/15
Index: src/daemon/common/commonUploads.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonUploads.ml,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -b -r1.56 -r1.57
--- src/daemon/common/commonUploads.ml 18 Mar 2008 08:24:37 -0000 1.56
+++ src/daemon/common/commonUploads.ml 16 Jul 2010 13:57:39 -0000 1.57
@@ -782,12 +782,22 @@
lprintf "streaming_left %d\n" !streaming_left;
end; *)
(* buffer empties with time... *)
+ (* FIXME wall-clock time is not needed here and causes problems when clock
jumps *)
let new_streaming_time = BasicSocket.current_time () in
- let deltat = (match !streaming_time with
+ let deltat' = (match !streaming_time with
| None -> 0.
| Some t -> new_streaming_time -. t) in
- streaming_left := !streaming_left +
- (int_of_float (!CommonGlobals.payload_bandwidth *. deltat));
+ (* stay sane no matter what *)
+ let deltat = min 10. (max 0. deltat') in
+ if abs_float (deltat -. deltat') > epsilon_float then
+ lprintf_nl "Detected clock jump. deltat %f adjusted to %f" deltat' deltat;
+ (* do not overflow *)
+ let deltab = !CommonGlobals.payload_bandwidth *. deltat in
+ if deltab > float max_int then
+ lprintf_nl "OVERFLOW deltab %f, ignored" deltab
+ else
+ streaming_left := !streaming_left + (int_of_float deltab);
+(* lprintf_nl "next_uploads %f %f %d %d %d" new_streaming_time deltat
!streaming_left (streaming_amount()) (Fifo.length upload_clients); *)
streaming_left := min !streaming_left (streaming_amount ());
streaming_time := Some new_streaming_time;
next_uploads_aux ()
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co...,
mldonkey-commits <=