_build/
Build
Makefile
-lib/
blib/
# Temp, old and emacs backup files.
.#*
.*.swp
+# archive files
+*.gz
+*.bz2
+
+# stuff from uri's working dir that he doesn't want in the repo
+old*
+*.ok
+lib-pod
+modules
+event_test
+dlug
+flow
+intel
+pod
+scaffidi
+slides
+stem2pod
+test
+
my $demo_dir = File::Spec->catdir($self->blib, 'demo');
File::Path::mkpath( $script_dir );
File::Path::mkpath( $demo_dir );
+ $self->add_to_cleanup($demo_dir);
foreach my $file (keys %$files) {
my $dest_dir = $file =~ /_demo$/ ? $demo_dir : $script_dir ;
People besides Uri who've contributed to Stem code and docs:
Dave Rolsky - various code, bug fixes, docs, etc.
+Stephen R. Scaffidi - various bug fixes, docs, etc.
conf/ticker.stem
conf/ttysock.stem
conf/type.stem
+conf/x.stem
Cookbook/cookbook.txt
Cookbook/World1.pm
Cookbook/World2.pm
sessions/client.pl
sessions/mid_event.pl
sessions/mid_event_async.pl
-srs_notes.txt
t/cell/flow.t
t/config/test_stem_bug.pl
t/event/event.t
^blib/
^MakeMaker-\d
+# demo files so we don't need to install
+^demo/
+
# Temp, old and emacs backup files.
~$
\.old$
^#.*#$
^\.#
\.*.swp$
+
+# other stuff we dont want in the dist tarball
+^notes/
+
use File::Basename qw( basename );
$ENV{PATH} .= ':' . basename( $0 ) . ':.';
+<<<<<<< HEAD:bin/chat2_demo
+=======
+
+>>>>>>> origin/master:bin/chat2_demo
for my $prog qw( run_stem xterm telnet ) {
die "Can't find $prog in PATH\n" if
system( "which $prog >/dev/null 2>&1" ) != 0;
eval { use lib 'blib/lib' } if -d 'blib/lib';
+eval { use lib '../blib/lib' } if -d '../blib/lib';
$Data::Dumper::Indent = 1 ;
$Data::Dumper::Purity = 1 ;
my $loop_class = _get_loop_class() ;
-init_loop() ;
+INIT{ init_loop() ; }
sub init_loop {
+Stem::Event::Queue::_init_queue() if defined &Stem::Event::Queue::_init_queue ;
+
$loop_class->_init_loop() ;
-Stem::Event::Queue::_init_queue() if defined &Stem::Event::Queue::_init_queue ;
}
$loop_type = 'perl' unless $loop_to_class{ $loop_type } ;
my $loop_class = "Stem::Event::$loop_to_class{ $loop_type }" ;
+print "LOOP $loop_class\n" ;
+
unless ( eval "require $loop_class" ) {
die "can't load $loop_class: $@" if $@ && $@ !~ /locate/ ;
+print "not found\n" ;
+
$loop_type = 'perl' ;
eval { require Stem::Event::Perl } ;
die "can't load event loop Stem::Event::Perl $@" if $@ ;
}
+
# save the event loop that we loaded.
#print "using event loop [$loop_type]\n" ;
$Stem::Vars::Env{ 'event_loop' } = $loop_type ;
+
return $loop_class ;
}
############################################################################
package Stem::Event::Plain ;
-
-BEGIN {
- @Stem::Event::Plain::ISA = qw( Stem::Event ) ;
-}
+our @ISA = qw( Stem::Event ) ;
=head2 Stem::Event::Plain::new
my $self = Stem::Class::parse_args( $attr_spec_plain, @_ ) ;
return $self unless ref $self ;
- my $err = $self->_core_event_build( 'plain' ) ;
+ my $err = $self->_build_core_event( 'plain' ) ;
return $err if $err ;
return $self ;
############################################################################
package Stem::Event::Signal ;
-
-BEGIN { our @ISA = qw( Stem::Event ) } ;
+our @ISA = qw( Stem::Event ) ;
=head2 Stem::Event::Signal::new
############################################################################
package Stem::Event::Timer ;
-
-BEGIN { our @ISA = qw( Stem::Event ) } ;
+our @ISA = qw( Stem::Event ) ;
=head2 Stem::Event::Timer::new
# these override Stem::Event's methods and then call those via SUPER::
package Stem::Event::IO ;
-
-BEGIN { our @ISA = qw( Stem::Event ) } ;
+our @ISA = qw( Stem::Event ) ;
sub init_io_timeout {
#######################################################
package Stem::Event::Read ;
+our @ISA = qw( Stem::Event::IO ) ;
+print "B @ISA\n" ;
-BEGIN { our @ISA = qw( Stem::Event::IO ) }
=head2 Stem::Event::Read::new
sub new {
my( $class ) = shift ;
+print "@ISA\n" ;
my $self = Stem::Class::parse_args( $attr_spec_read, @_ ) ;
return $self unless ref $self ;
+
# return <<ERR unless defined fileno $self->{fh} ;
# Stem::Event::Read: $self->{fh} is not an open handle
# ERR
############################################################################
package Stem::Event::Write ;
-
-BEGIN { our @ISA = qw( Stem::Event::IO ) } ;
+our @ISA = qw( Stem::Event::IO ) ;
=head2 Stem::Event::Write::new
=cut
package Stem::Event::Perl ;
+our @ISA = qw( Stem::Event ) ;
use strict ;
use Stem::Event::Signal ;
-@Stem::Event::Perl::ISA = qw( Stem::Event ) ;
-
BEGIN {
unless ( eval { require Time::HiRes } ) {
package Stem::Event::Queue ;
+our @ISA = qw( Stem::Event ) ;
use strict ;
use warnings ;
use IO::Handle ;
use base 'Exporter' ;
-our @EXPORT = qw( &mark_not_empty ) ;
+our @EXPORT = qw( mark_not_empty ) ;
my( $queue_read, $queue_write, $queue_read_event ) ;
$SIG{ $signal } = $cached_handlers{$signal} ||=
sub {
- mark_not_empty() ;
-#print "HIT $signal\n";
+print "HIT $signal\n";
+ Stem::Event::Queue::mark_not_empty() ;
push @signal_queue, $signal
} ;
--- /dev/null
+Odd sort of behavior... when dumping \%:: with Data::Dumper in Stem/Conf.pm
+(insert a print @ line 234)
+
+the program just "freezes"...
+
+
use strict ;
-#use Test::More tests => 29 ;
-use Test::More tests => 24 ;
+use Test::More tests => 27 ;
use Symbol ;
sub test_events {
-# test_null_events() ;
-# test_plain_events () ;
-# test_signal_events () ;
+ test_null_events() ;
+ test_plain_events () ;
+ test_signal_events () ;
test_hard_timer_events () ;
test_soft_timer_events () ;
test_io_events () ;
my( $self ) = @_ ;
ok( 1, 'plain event triggered' ) ;
+ Stem::Event::stop_loop() ;
}
sub test_signal_events {
return ;
}
+ my $event2 = Stem::Event::Timer->new(
+ 'object' => $self,
+ 'method' => 'send_int_signal',
+ 'delay' => 3,
+ ) ;
+
+ ok( ref $event2, 'signal delay timer created' ) ;
+
+ Stem::Event::start_loop() ;
+
+ ok( 1, 'signal - event loop exit' ) ;
+ }
+}
+
+sub send_int_signal {
+
my $event = Stem::Event::Signal->new(
'object' => $self,
'signal' => 'INT',
$self->{'sig_event'} = $event ;
- kill 'INT', $$ ;
-
-#print "kill INT\n" ;
- Stem::Event::start_loop() ;
+print "kill INT\n" ;
- ok( 1, 'signal - event loop exit' ) ;
- }
+ kill 'INT', $$ ;
}
# callback method for signal
my( $self ) = @_ ;
+send_int_signal() ;
+
ok( 1, 'hard timer event triggered' ) ;
if ( --$self->{'hard_timer_count'} > 0 ) {