[mnet-devel] patch: enable download backoff
Zooko O'Whielacronx
zooko at zooko.com
Tue Feb 17 16:57:15 GMT 2004
This is a change to BlockWrangler to provide an optional "delay" argument to
backoff stalled downloads.
It almost certainly can't hurt, and it is required for the patch that is coming
next. (Although of course you might not want to accept the patch that is coming
next...)
--- common/BlockWrangler.py 7 Dec 2003 17:35:50 -0000 1.94
+++ common/BlockWrangler.py 17 Feb 2004 16:41:35 -0000
@@ -282,7 +283,7 @@ class BlockWrangler(nummedobj.NummedObj)
### The following methods are for strategies to use.
### The following methods are for strategies to use. (Commands to take action.)
- def look_for_blocks_on_peer(self, peerId, blockIds):
+ def look_for_blocks_on_peer(self, peerId, blockIds, nextdelay=0):
"""
@precondition: blockIds must be a non-empty sequence.: (type(blockIds) in (types.TupleType, types.ListType,)) and (len(blockIds) > 0): "blockIds: %s :: %s" % tuple(map(humanreadable.hr, (blockIds, type(blockIds),)))
"""
@@ -291,7 +292,7 @@ class BlockWrangler(nummedobj.NummedObj)
assert self.data._assert_consistency()
- def _handle_look_for_blocks_result(widget, outcome, failure_reason=None, queryblockIds=blockIds, peerId=peerId, self=self):
+ def _handle_look_for_blocks_result(widget, outcome, failure_reason=None, queryblockIds=blockIds, peerId=peerId, self=self, nextdelay=nextdelay):
assert self.data._assert_consistency()
if not failure_reason:
assert type(outcome) in (types.ListType, types.TupleType,), "outcome: %s :: %s" % tuple(map(humanreadable.hr, (outcome, type(outcome),)))
@@ -303,9 +304,9 @@ class BlockWrangler(nummedobj.NummedObj)
self.data.remove_Ids_of_located_blocks(peerId, blockIds=queryblockIds)
# Tell the strategy to wake up -- there are new results to consider! (Even failure is a new result to consider.)
- self.strategy.schedule_event()
+ self.strategy.schedule_event(delay=nextdelay)
def _handle_timely_look_for_blocks_result(widget, outcome, failure_reason=None, _handle_look_for_blocks_result=_handle_look_for_blocks_result, peerId=peerId, self=self):
"""
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
mnet-devel mailing list
mnet-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mnet-devel
More information about the Mnet-devel
mailing list