Hi all,

Here is some simpler code to illustrate my point...

[EMAIL PROTECTED] poe]$ cat test.pl
#!/home/pfarmer/local/bin/perl

use strict;
use warnings;

use POE;

POE::Session->create (
       inline_states => {
               _start     => sub { my $kernel = $_[KERNEL];
$kernel->yield("scheduler"); },
               _stop      => sub { print "STOP\n"; },
               job_runner => sub { print time() . " - Sleeping\n"; sleep(2); },
               scheduler  => \&sche,
       }
);

sub sche () {
       print time() . " - Running Scheduler\n";
       my $kernel = $_[KERNEL];

       $kernel->yield("job_runner");
       $kernel->yield("job_runner");
       $kernel->yield("job_runner");
       $kernel->yield("job_runner");
       $kernel->yield("job_runner");
       $kernel->yield("job_runner");
       $kernel->yield("job_runner");
       $kernel->yield("job_runner");
       $kernel->yield("job_runner");
       $kernel->yield("job_runner");

       $kernel->delay_set("scheduler", 10);
}

POE::Kernel->run();
exit;


[EMAIL PROTECTED] poe]$ perl -v

This is perl, v5.8.8 built for i686-linux

Copyright 1987-2006, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

[EMAIL PROTECTED] poe]$ perl ./test.pl
1149783926 - Running Scheduler
1149783926 - Sleeping
1149783928 - Sleeping
1149783930 - Sleeping
1149783932 - Sleeping
1149783934 - Sleeping
1149783936 - Sleeping
1149783938 - Sleeping
1149783940 - Sleeping
1149783942 - Sleeping
1149783944 - Sleeping
1149783946 - Running Scheduler
1149783946 - Sleeping
1149783948 - Sleeping
.............

Now, when I run the script, because of the
$kernel->delay_set("scheduler",10) at the end of the "sche" sub, I'm
expecting to see "sche" running at about 1149783936 or 1149783938 or
as soon as possible after the 10 seconds have passed not 1149783946
once all the other event "job_runners" are finished.

My POE version is 0.3501.

Sorry to be a pain...... :)

--
Peter Farmer

Reply via email to