Ignore:
Timestamp:
02/07/10 06:14:07 (2 years ago)
Author:
adamk
Message:

Tidying up

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Padre/lib/Padre/SlaveDriver.pm

    r10579 r10585  
    3838use warnings; 
    3939 
    40 our $VERSION = '0.54'; 
     40our $VERSION = '0.56'; 
    4141 
    4242# According to Wx docs, 
     
    5454# running a task. 
    5555our $TASK_START_EVENT : shared; 
     56 
     57=pod 
    5658 
    5759=head3 C<new> 
     
    7072        @_ = (); 
    7173        $SlaveDriver = bless { 
    72             cmd_queue  => Thread::Queue->new(), 
    73             tid_queue  => Thread::Queue->new(), 
    74             task_queue => Thread::Queue->new(), 
     74            cmd_queue  => Thread::Queue->new, 
     75            tid_queue  => Thread::Queue->new, 
     76            task_queue => Thread::Queue->new, 
    7577        } => $class; 
    76         $SlaveDriver->_init_events(); 
     78        $SlaveDriver->_init_events; 
    7779        $SlaveDriver->{master} = threads->create( 
    7880            \&_slave_driver_loop, 
     
    8486 
    8587    END { 
    86         $SlaveDriver->cleanup(), undef $SlaveDriver if defined $SlaveDriver; 
     88        if ( defined $SlaveDriver ) { 
     89            $SlaveDriver->cleanup; 
     90            undef $SlaveDriver; 
     91        } 
    8792    } 
    8893} 
     
    9095# done late so that the full Wx has been loaded for sure 
    9196sub _init_events { 
    92     $TASK_DONE_EVENT = Wx::NewEventType() if not defined $TASK_DONE_EVENT; 
     97    $TASK_DONE_EVENT  = Wx::NewEventType() if not defined $TASK_DONE_EVENT; 
    9398    $TASK_START_EVENT = Wx::NewEventType() if not defined $TASK_START_EVENT; 
    9499} 
     100 
     101=pod 
    95102 
    96103=head2 Object methods 
     
    107114    my $task_manager = shift; 
    108115    require Storable; 
    109     $self->{cmd_queue}->enqueue(Storable::freeze([$task_manager->task_queue])); 
    110     my $tid = $self->{tid_queue}->dequeue(); 
    111     return threads->object($tid); 
    112 } 
    113  
     116    $self->{cmd_queue}->enqueue( 
     117        Storable::freeze( [ $task_manager->task_queue ] ) 
     118    ); 
     119    return threads->object( 
     120        $self->{tid_queue}->dequeue 
     121    ); 
     122} 
     123 
     124=pod 
    114125 
    115126=head3 task_queue 
     
    125136 
    126137sub task_queue { 
    127     my $self = shift; 
    128     return $self->{task_queue}; 
    129 } 
     138    $_[0]->{task_queue}; 
     139} 
     140 
     141=pod 
    130142 
    131143=head3 cleanup 
     
    150162 
    151163sub DESTROY { 
    152     my $self = shift; 
    153     $self->cleanup(); 
     164    $_[0]->cleanup; 
    154165} 
    155166 
     
    157168# Worker thread main loop 
    158169sub _worker_loop { 
    159     my ( $queue ) = @_; @_ = (); # hack to avoid "Scalars leaked" 
     170    my ( $queue ) = @_; 
     171    @_ = (); # hack to avoid "Scalars leaked" 
     172 
    160173    require Storable; 
    161174    require Padre::TaskManager; 
     
    195208} 
    196209 
    197  
    198210sub _slave_driver_loop { 
    199     my ( $inqueue, $outqueue ) = @_; @_ = (); # hack to avoid "Scalars leaked" 
     211    my ( $inqueue, $outqueue ) = @_; 
     212    @_ = (); # hack to avoid "Scalars leaked" 
    200213 
    201214    while ( my $args = $inqueue->dequeue ) { # args is frozen [$main, $queue] 
    202215        last if $args eq 'STOP'; 
    203          
    204216        my $task_queue = Padre::SlaveDriver->new->task_queue; 
    205217        my $worker_thread = threads->create(\&_worker_loop, $task_queue); 
    206         my $tid = $worker_thread->tid(); 
     218        my $tid = $worker_thread->tid; 
    207219        $outqueue->enqueue($tid); 
    208220    } 
Note: See TracChangeset for help on using the changeset viewer.