From: Uri Guttman Date: Tue, 15 Sep 2009 17:54:48 +0000 (-0400) Subject: merging X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d88e43718237ee11b2a4458ed280dccfe6aea2d7;hp=6b34fa6632989ffe8ce2ff3f9bf8ae7838e03062;p=urisagit%2FStem.git merging --- diff --git a/lib/Stem/Event.pm b/lib/Stem/Event.pm index 1df1a00..712ccc7 100644 --- a/lib/Stem/Event.pm +++ b/lib/Stem/Event.pm @@ -73,6 +73,10 @@ Stem::Event::Queue::_init_queue() if defined &Stem::Event::Queue::_init_queue ; $loop_class->_init_loop() ; +<<<<<<< HEAD:lib/Stem/Event.pm +#Stem::Event::Queue::_init_queue() if defined &Stem::Event::Queue::_init_queue ; +======= +>>>>>>> master:lib/Stem/Event.pm } @@ -322,6 +326,10 @@ print "not found\n" ; ############################################################################ package Stem::Event::Plain ; +<<<<<<< HEAD:lib/Stem/Event.pm + +======= +>>>>>>> master:lib/Stem/Event.pm our @ISA = qw( Stem::Event ) ; =head2 Stem::Event::Plain::new @@ -378,6 +386,10 @@ sub new { ############################################################################ package Stem::Event::Signal ; +<<<<<<< HEAD:lib/Stem/Event.pm + +======= +>>>>>>> master:lib/Stem/Event.pm our @ISA = qw( Stem::Event ) ; =head2 Stem::Event::Signal::new @@ -464,6 +476,10 @@ sub new { ############################################################################ package Stem::Event::Timer ; +<<<<<<< HEAD:lib/Stem/Event.pm + +======= +>>>>>>> master:lib/Stem/Event.pm our @ISA = qw( Stem::Event ) ; =head2 Stem::Event::Timer::new @@ -653,6 +669,10 @@ sub timer_triggered { # these override Stem::Event's methods and then call those via SUPER:: package Stem::Event::IO ; +<<<<<<< HEAD:lib/Stem/Event.pm + +======= +>>>>>>> master:lib/Stem/Event.pm our @ISA = qw( Stem::Event ) ; sub init_io_timeout { @@ -729,6 +749,10 @@ package Stem::Event::Read ; our @ISA = qw( Stem::Event::IO ) ; print "B @ISA\n" ; +<<<<<<< HEAD:lib/Stem/Event.pm +our @ISA = qw( Stem::Event::IO ) ; +======= +>>>>>>> master:lib/Stem/Event.pm =head2 Stem::Event::Read::new @@ -828,6 +852,10 @@ print "@ISA\n" ; ############################################################################ package Stem::Event::Write ; +<<<<<<< HEAD:lib/Stem/Event.pm + +======= +>>>>>>> master:lib/Stem/Event.pm our @ISA = qw( Stem::Event::IO ) ; =head2 Stem::Event::Write::new diff --git a/lib/Stem/Event/Queue.pm b/lib/Stem/Event/Queue.pm index 241bba3..c473237 100644 --- a/lib/Stem/Event/Queue.pm +++ b/lib/Stem/Event/Queue.pm @@ -49,14 +49,18 @@ use warnings ; use Socket; use IO::Handle ; +<<<<<<< HEAD:lib/Stem/Event/Queue.pm +my( $self, $queue_read, $queue_write, $queue_read_event, $queue_has_event ) ; +======= use base 'Exporter' ; our @EXPORT = qw( mark_not_empty ) ; +>>>>>>> master:lib/Stem/Event/Queue.pm -my( $queue_read, $queue_write, $queue_read_event ) ; +sub _init_event_queue { -my $self ; + return if $self ; -sub _init_queue { + $self = bless {} ; socketpair( $queue_read, $queue_write, AF_UNIX, SOCK_STREAM, PF_UNSPEC ) || die <blocking( 0 ) ; $queue_read_event = Stem::Event::Read->new( @@ -79,27 +82,25 @@ DIE } -my $queue_is_marked ; - -sub mark_not_empty { +sub queue_has_event { my( $always_mark ) = @_ ; # don't mark the queue if it is already marked and we aren't forced # the signal queue always marks the queue - return if $queue_is_marked && !$always_mark ; + return if $queue_has_event && !$always_mark ; syswrite( $queue_write, 'x' ) ; - $queue_is_marked = 1 ; + $queue_has_event = 1 ; } sub readable { sysread( $queue_read, my $buf, 10 ) ; - $queue_is_marked = 0 ; + $queue_has_event = 0 ; # Stem::Event::Plain::process_queue(); Stem::Event::Signal::process_signal_queue(); diff --git a/lib/Stem/Event/Signal.pm b/lib/Stem/Event/Signal.pm index 14a85ba..6523103 100644 --- a/lib/Stem/Event/Signal.pm +++ b/lib/Stem/Event/Signal.pm @@ -32,8 +32,14 @@ sub _build { $SIG{ $signal } = $cached_handlers{$signal} ||= sub { +<<<<<<< HEAD:lib/Stem/Event/Signal.pm + Stem::Event::Queue::queue_has_event() ; + +#print "HIT $signal\n"; +======= print "HIT $signal\n"; Stem::Event::Queue::mark_not_empty() ; +>>>>>>> master:lib/Stem/Event/Signal.pm push @signal_queue, $signal } ; @@ -42,6 +48,12 @@ print "HIT $signal\n"; $signal2event{$signal} = $self ; #print "$signal = $SIG{ $signal }\n" ; + +# make sure the event queue is set up so we can handle signals in the +# event loop + + Stem::Event::Queue::_init_event_queue() ; + return ; } diff --git a/t/event/event_test.pl b/t/event/event_test.pl index faefbfe..1615ff8 100644 --- a/t/event/event_test.pl +++ b/t/event/event_test.pl @@ -50,7 +50,7 @@ sub test_plain_events { 'object' => $self ) ; - ok( ref $event, 'plain event created' ) ; + ok( ref $event, 'plain - event created' ) ; Stem::Event::start_loop() ; @@ -63,8 +63,12 @@ sub triggered { my( $self ) = @_ ; +<<<<<<< HEAD:t/event/event_test.pl + ok( 1, 'plain - event triggered' ) ; +======= ok( 1, 'plain event triggered' ) ; Stem::Event::stop_loop() ; +>>>>>>> master:t/event/event_test.pl } sub test_signal_events { @@ -97,7 +101,7 @@ sub send_int_signal { 'signal' => 'INT', ) ; - ok( ref $event, 'signal event created' ) ; + ok( ref $event, 'signal - event created' ) ; $self->{'sig_event'} = $event ; @@ -113,7 +117,7 @@ sub sig_int_handler { my( $self ) = @_ ; - ok( 1, 'signal event triggered' ) ; + ok( 1, 'signal - event triggered' ) ; $self->{'sig_event'}->cancel() ; Stem::Event::stop_loop() ; @@ -138,7 +142,7 @@ sub test_hard_timer_events { 'hard' => 1, ) ; - ok( ref $event, 'hard timer event created' ) ; + ok( ref $event, 'hard timer - event created' ) ; print "$event\n" unless ref $event ; $self->{'hard_timer_event'} = $event ; @@ -154,9 +158,13 @@ sub hard_timeout { my( $self ) = @_ ; +<<<<<<< HEAD:t/event/event_test.pl + ok( 1, 'hard timer - event triggered' ) ; +======= send_int_signal() ; ok( 1, 'hard timer event triggered' ) ; +>>>>>>> master:t/event/event_test.pl if ( --$self->{'hard_timer_count'} > 0 ) { @@ -164,7 +172,7 @@ send_int_signal() ; my $delta = $time - $self->{'hard_timer_start_time'} ; $self->{'hard_timer_start_time'} = $time ; - ok( $delta >= INTERVAL, 'hard delta' ) ; + ok( $delta >= INTERVAL, 'hard timer - delta' ) ; hard_sleep( SLEEP ) ; @@ -177,8 +185,8 @@ send_int_signal() ; #print "O $self->{'hard_timer_start_time'} T $time D $delta I ", INTERVAL, "\n" ; - ok( $delta >= INTERVAL, 'hard delta 2' ) ; - ok( $delta <= INTERVAL + SLEEP, 'hard delta sleep' ) ; + ok( $delta >= INTERVAL, 'hard timer - delta 2' ) ; + ok( $delta <= INTERVAL + SLEEP, 'hard timer - delta sleep' ) ; $self->{'hard_timer_event'}->cancel() ; @@ -199,7 +207,7 @@ sub test_soft_timer_events { 'repeat' => 1, ) ; - ok( ref $event, 'soft timer event created' ) ; + ok( ref $event, 'soft timer - event created' ) ; # print "$event\n" unless ref $event ; $self->{'soft_timer_event'} = $event ; @@ -217,7 +225,7 @@ sub soft_timeout { my( $self ) = @_ ; - ok( 1, 'soft timer event triggered' ) ; + ok( 1, 'soft timer - event triggered' ) ; if ( --$self->{'soft_timer_count'} > 0 ) { @@ -226,7 +234,7 @@ sub soft_timeout { #print "T $time D $delta I ", INTERVAL, "\n" ; - ok( $delta >= INTERVAL, 'soft delta' ) ; + ok( $delta >= INTERVAL, 'soft timer - delta' ) ; hard_sleep( SLEEP ) ; @@ -241,8 +249,8 @@ sub soft_timeout { #print "TIME2 $time OTIME $self->{'soft_timer_start_time'} DEL $delta INTERVAL ", INTERVAL, "\n" ; -# ok( $delta >= INTERVAL, 'soft delta 2' ) ; - ok( $delta >= INTERVAL + SLEEP, 'soft delta 3' ) ; +# ok( $delta >= INTERVAL, 'soft timer - delta 2' ) ; + ok( $delta >= INTERVAL + SLEEP, 'soft timer - delta 3' ) ; $self->{'soft_timer_event'}->cancel() ; @@ -273,7 +281,7 @@ sub test_io_events { 'timeout' => 3, ) ; - ok( ref $read_event, 'read event created' ) ; + ok( ref $read_event, 'read - event created' ) ; $self->{'read_event'} = $read_event ; my $write_event = Stem::Event::Write->new( @@ -281,19 +289,19 @@ sub test_io_events { 'fh' => $write_fh, ) ; - ok( ref $write_event, 'write event created' ) ; + ok( ref $write_event, 'write - event created' ) ; $self->{'write_event'} = $write_event ; Stem::Event::start_loop() ; - ok( 1, 'io - event loop exit' ) ; + ok( 1, 'io event - loop exit' ) ; } sub read_timeout { my( $self ) = @_ ; - ok( 1, 'read event timed out' ) ; + ok( 1, 'read - event timed out' ) ; $self->{'write_event'}->start() ; } @@ -303,7 +311,7 @@ sub writeable { my( $self ) = @_ ; - ok( 1, 'write event triggered' ) ; + ok( 1, 'write - event triggered' ) ; syswrite( $self->{'write_fh'}, $self->{'message'} ) ; @@ -314,13 +322,13 @@ sub readable { my( $self ) = @_ ; - ok(1, 'read event triggered' ) ; + ok(1, 'read - event triggered' ) ; my( $read_buf ) ; my $bytes_read = sysread( $self->{'read_fh'}, $read_buf, 1000 ) ; - ok( $bytes_read, 'read byte count' ) ; + ok( $bytes_read, 'read - byte count' ) ; is( $read_buf, $self->{'message'}, 'read event compare' ) ;