Changeset 2336

Show
Ignore:
Timestamp:
05/14/08 23:35:50 (18 months ago)
Author:
bchoate
Message:

Conditioned support for Devel::Leak::Object reporting.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/release-38/lib/MT/TheSchwartz.pm

    r2315 r2336  
    1515 
    1616our $RANDOMIZE_JOBS = 0; 
     17our $OBJECT_REPORT = 0; 
    1718 
    1819sub instance { 
     
    3738    my $workers = delete $param{workers} if exists $param{workers}; 
    3839    $RANDOMIZE_JOBS = delete $param{randomize} if exists $param{randomize}; 
     40 
     41    # Reports object usage inbetween jobs if Devel::Leak::Object is loaded 
     42    $OBJECT_REPORT = 1 if $Devel::Leak::Object::VERSION; 
    3943 
    4044    my $client = $class->SUPER::new(%param); 
     
    129133    my $last_task_run = 0; 
    130134    my $did_work = 0; 
     135 
     136    if ($OBJECT_REPORT) { 
     137        Devel::Leak::Object::status(); 
     138        print "\n\n"; 
     139    } 
     140 
    131141    while (1) { 
    132142        if ($client->work_once) { 
    133143            $did_work = 1; 
    134         } else { 
    135             if ($did_work) { 
    136                 my $driver = MT::Object->driver; 
    137                 $driver->clear_cache 
    138                     if $driver->can('clear_cache'); 
    139                 MT->request->reset(); 
    140                 $did_work = 0; 
     144        } 
     145 
     146        if ($last_task_run + 60 * 5 < time) { 
     147            MT->run_tasks(); 
     148            $did_work = 1; 
     149            $last_task_run = time; 
     150        } 
     151 
     152        if ($did_work) { 
     153            my $driver = MT::Object->driver; 
     154            $driver->clear_cache 
     155                if $driver->can('clear_cache'); 
     156            MT->request->reset(); 
     157            $did_work = 0; 
     158            if ($OBJECT_REPORT) { 
     159                Devel::Leak::Object::status(); 
     160                print "\n\n"; 
    141161            } 
    142  
    143             if ($last_task_run + 60 * 5 < time) { 
    144                 MT->run_tasks(); 
    145                 $last_task_run = time; 
    146             } 
    147         } 
     162        } 
     163 
    148164        sleep $delay; 
    149165    }