Changeset 366

Show
Ignore:
Timestamp:
08/23/06 23:11:25 (2 years ago)
Author:
bradfitz
Message:

let subrefs of every say how much to sleep in next round.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/server-newrepl/lib/MogileFS/Util.pm

    r272 r366  
    1212    while (1) { 
    1313        my $start = Time::HiRes::time(); 
     14        my $explicit_sleep = undef; 
    1415 
    1516        # run the code in a loop, so "next" will get out of it. 
    1617        foreach (1) { 
    17             $code->(); 
     18            $code->(sub { 
     19                $explicit_sleep = shift; 
     20            }); 
    1821        } 
    1922 
    2023        my $took = Time::HiRes::time() - $start; 
    2124        my $sleep_for = $delay - $took; 
    22         Time::HiRes::sleep($sleep_for) if $sleep_for > 0; 
     25        if (defined $explicit_sleep) { 
     26            Time::HiRes::sleep($explicit_sleep); 
     27        } else { 
     28            Time::HiRes::sleep($sleep_for) if $sleep_for > 0; 
     29        } 
    2330    } 
    2431}