Thread: [poe-commits] SF.net SVN: poe:[2403] trunk/poe/lib/POE/Kernel.pm
Brought to you by:
rcaputo
From: <rc...@us...> - 2008-12-01 00:53:53
|
Revision: 2403 http://poe.svn.sourceforge.net/poe/?rev=2403&view=rev Author: rcaputo Date: 2008-12-01 00:53:49 +0000 (Mon, 01 Dec 2008) Log Message: ----------- Add run_while(). Untested. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm Modified: trunk/poe/lib/POE/Kernel.pm =================================================================== --- trunk/poe/lib/POE/Kernel.pm 2008-11-24 07:28:27 UTC (rev 2402) +++ trunk/poe/lib/POE/Kernel.pm 2008-12-01 00:53:49 UTC (rev 2403) @@ -1246,14 +1246,20 @@ $self->_data_stat_finalize() if TRACE_PROFILE or TRACE_STATISTICS; } +sub run_while { + my ($self, $scalar_ref) = @_; + 1 while $$scalar_ref and $self->run_one_timeslice(); +} + sub run_one_timeslice { my $self = shift; - return undef unless $self->_data_ses_count(); - $self->loop_do_timeslice(); unless ($self->_data_ses_count()) { $self->_finalize_kernel(); $kr_run_warning |= KR_RUN_DONE; + return; } + $self->loop_do_timeslice(); + return 1; } sub run { @@ -3009,6 +3015,23 @@ $done is never set. The loop will never be done, even though there's nothing left that will set $done. +=head3 run_while SCALAR_REF + +run_while() is an B<experimental> version of run_one_timeslice() that +will only return when there are no more active sessions, or the value +of the referenced scalar becomes false. + +Here's a version of the run_one_timeslice() example using run_while() +instead: + + my $job_count = 3; + + sub handle_some_event { + $job_count--; + } + + $kernel->run_while(\$job_count); + =head3 stop stop() causes POE::Kernel->run() to return early. It does this by This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2008-12-29 06:10:42
|
Revision: 2407 http://poe.svn.sourceforge.net/poe/?rev=2407&view=rev Author: rcaputo Date: 2008-12-29 06:10:38 +0000 (Mon, 29 Dec 2008) Log Message: ----------- Fix sig_child() documentation. There is not ARGS_LIST for that method. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm Modified: trunk/poe/lib/POE/Kernel.pm =================================================================== --- trunk/poe/lib/POE/Kernel.pm 2008-12-14 08:47:08 UTC (rev 2406) +++ trunk/poe/lib/POE/Kernel.pm 2008-12-29 06:10:38 UTC (rev 2407) @@ -4563,10 +4563,9 @@ =head3 sig_child PROCESS_ID [, EVENT_NAME] -sig_child() is a convenient way to deliver an EVENT_NAME event with an -optional ARGS_LIST when a particular PROCESS_ID has exited. The -watcher can be cleared prematurely by calling sig_child() with just -the PROCESS_ID. +sig_child() is a convenient way to deliver an EVENT_NAME event when a +particular PROCESS_ID has exited. The watcher can be cleared +prematurely by calling sig_child() with just the PROCESS_ID. A session may register as many sig_child() handlers as necessary, but a session may only have one per PROCESS_ID. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-01-17 18:32:11
|
Revision: 2408 http://poe.svn.sourceforge.net/poe/?rev=2408&view=rev Author: rcaputo Date: 2009-01-17 18:32:07 +0000 (Sat, 17 Jan 2009) Log Message: ----------- Fix a minor example typo discovered by Apocalypse. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm Modified: trunk/poe/lib/POE/Kernel.pm =================================================================== --- trunk/poe/lib/POE/Kernel.pm 2008-12-29 06:10:38 UTC (rev 2407) +++ trunk/poe/lib/POE/Kernel.pm 2009-01-17 18:32:07 UTC (rev 2408) @@ -4808,7 +4808,7 @@ # Among other things, release the reference count for the # requester. my $requester_id = delete $_[HEAP]{requesters}{$request_id}; - $_[KERNEL]->refcount_increment( $requester_id, "pending request"); + $_[KERNEL]->refcount_decrement( $requester_id, "pending request"); } The requester's $_[SENDER]->ID is remembered and removed from the heap This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ap...@us...> - 2009-02-09 19:32:10
|
Revision: 2419 http://poe.svn.sourceforge.net/poe/?rev=2419&view=rev Author: apocal Date: 2009-02-09 19:32:06 +0000 (Mon, 09 Feb 2009) Log Message: ----------- fix TRACE_STATISTICS 30s hang because of wrong idle_queue_size count Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm Modified: trunk/poe/lib/POE/Kernel.pm =================================================================== --- trunk/poe/lib/POE/Kernel.pm 2009-02-09 16:20:10 UTC (rev 2418) +++ trunk/poe/lib/POE/Kernel.pm 2009-02-09 19:32:06 UTC (rev 2419) @@ -370,7 +370,7 @@ # # XXX - There must be a better mechanism. # -my $idle_queue_size = TRACE_PROFILE ? 1 : 0; +my $idle_queue_size = TRACE_STATISTICS ? 1 : 0; sub _idle_queue_grow { $idle_queue_size++; } sub _idle_queue_shrink { $idle_queue_size--; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-02-22 18:51:49
|
Revision: 2457 http://poe.svn.sourceforge.net/poe/?rev=2457&view=rev Author: rcaputo Date: 2009-02-22 18:51:40 +0000 (Sun, 22 Feb 2009) Log Message: ----------- Try to clarify the _trap() message so that people look above the trap for problems within their own programs. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm Modified: trunk/poe/lib/POE/Kernel.pm =================================================================== --- trunk/poe/lib/POE/Kernel.pm 2009-02-22 18:44:15 UTC (rev 2456) +++ trunk/poe/lib/POE/Kernel.pm 2009-02-22 18:51:40 UTC (rev 2457) @@ -1,4 +1,4 @@ -# $Id$ +## $Id$ package POE::Kernel; @@ -420,7 +420,11 @@ _trap_death(); confess( - "Please mail the following information to bug-POE\@rt.cpan.org:\n@_" + "-----\n", + "Please address any warnings or errors above this message, and try\n", + "again. If there are none, or those messages are from within POE,\n", + "then please mail them along with the following information\n", + "to bug-POE\@rt.cpan.org:\n---\n@_\n-----\n" ); _release_death(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ap...@us...> - 2009-03-10 23:33:34
|
Revision: 2499 http://poe.svn.sourceforge.net/poe/?rev=2499&view=rev Author: apocal Date: 2009-03-10 23:33:23 +0000 (Tue, 10 Mar 2009) Log Message: ----------- Typo in POD, pointed out by Hinrik - thanks! Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm Modified: trunk/poe/lib/POE/Kernel.pm =================================================================== --- trunk/poe/lib/POE/Kernel.pm 2009-03-08 00:34:03 UTC (rev 2498) +++ trunk/poe/lib/POE/Kernel.pm 2009-03-10 23:33:23 UTC (rev 2499) @@ -3173,7 +3173,7 @@ notifications. This avoids a host of race conditions. call() may fail in the same way and for the same reasons as post(). -On failure, $! is set to some nonzero value indicating way. Since +On failure, $! is set to some nonzero value indicating why. Since call() may return undef as a matter of course, it's recommended that $! be checked for the error condition as well as the explanation. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ap...@us...> - 2009-03-11 02:14:25
|
Revision: 2500 http://poe.svn.sourceforge.net/poe/?rev=2500&view=rev Author: apocal Date: 2009-03-11 02:14:13 +0000 (Wed, 11 Mar 2009) Log Message: ----------- POD tweak, thanks crab from irc! Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm Modified: trunk/poe/lib/POE/Kernel.pm =================================================================== --- trunk/poe/lib/POE/Kernel.pm 2009-03-10 23:33:23 UTC (rev 2499) +++ trunk/poe/lib/POE/Kernel.pm 2009-03-11 02:14:13 UTC (rev 2500) @@ -2633,7 +2633,7 @@ Problem notwithstanding. A POE-based application loads some modules, sets up one or more -sessions, runs the code in those sessions, and eventually exists. +sessions, runs the code in those sessions, and eventually exits. use POE; POE::Session->create( ... map events to code here ... ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-03-11 02:29:12
|
Revision: 2501 http://poe.svn.sourceforge.net/poe/?rev=2501&view=rev Author: rcaputo Date: 2009-03-11 02:28:50 +0000 (Wed, 11 Mar 2009) Log Message: ----------- Fix a doc typo reported by Abhijit Menon-Sen. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm Modified: trunk/poe/lib/POE/Kernel.pm =================================================================== --- trunk/poe/lib/POE/Kernel.pm 2009-03-11 02:14:13 UTC (rev 2500) +++ trunk/poe/lib/POE/Kernel.pm 2009-03-11 02:28:50 UTC (rev 2501) @@ -2847,10 +2847,12 @@ being used. Since most graphical toolkits include some form of event loop, back-end code should be portable to all of them. -Cooperation with other event loops also lets you embed POE code into -other software. For example, one can embed networking code into Vim, -so non-blocking HTTP clients into irssi because they all cooperatively -share L<Glib>. +POE's cooperation with other event loops lets POE be embedded into +other software. The common underlying event loop drives both the +application and POE. For example, by using POE::Loop::Glib, one can +embed POE into Vim, irssi, and so on. Application scripts can then +take advantage of POE::Component::Client::HTTP (and everything else) +to do large-scale work without blocking the rest of the program. Because this is Perl, there are multiple ways to load an alternate event loop. The simplest way is to load the event loop before loading This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-06-29 18:58:44
|
Revision: 2559 http://poe.svn.sourceforge.net/poe/?rev=2559&view=rev Author: rcaputo Date: 2009-06-29 18:58:34 +0000 (Mon, 29 Jun 2009) Log Message: ----------- Comment out garbage collection testing at the end of call(). Neither the caller's nor the callee's reference count is affected by the call() itself. Anything that does affect the count should be GC tested separately. All tests pass, which probably means we need new tests. Thanks to DrGeek on IRC for asking an insightful question about call()'s GC. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-07-28 05:36:44
|
Revision: 2611 http://poe.svn.sourceforge.net/poe/?rev=2611&view=rev Author: rcaputo Date: 2009-07-28 05:36:12 +0000 (Tue, 28 Jul 2009) Log Message: ----------- Some people may be using POE without actually reading the docs. Furthermore, they may go on to rant about the side effects in obscure places. Recommend reading the documentation in one of POE's most "infamous" warnings. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-09-04 02:35:30
|
Revision: 2666 http://poe.svn.sourceforge.net/poe/?rev=2666&view=rev Author: rcaputo Date: 2009-09-04 02:35:20 +0000 (Fri, 04 Sep 2009) Log Message: ----------- Skip the signals pipe when RUNNING_IN_HELL. Child "processes" in Windows take out the parent's sockets when they close, causing hilarity in the signal pipe code. Probably in a lot of real applications, too. Surely there's a better way? Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gw...@us...> - 2009-09-08 07:43:46
|
Revision: 2684 http://poe.svn.sourceforge.net/poe/?rev=2684&view=rev Author: gwyn17 Date: 2009-09-08 07:43:40 +0000 (Tue, 08 Sep 2009) Log Message: ----------- Document the fact that the signal pipe isn't used on Windows. Warn if we are ignoring the signal pipe on Windows. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gw...@us...> - 2009-09-08 07:54:24
|
Revision: 2685 http://poe.svn.sourceforge.net/poe/?rev=2685&view=rev Author: gwyn17 Date: 2009-09-08 07:54:17 +0000 (Tue, 08 Sep 2009) Log Message: ----------- This patch sucks less. _warn not defined at that point. Teach me to commit before make test. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gw...@us...> - 2009-09-08 13:43:36
|
Revision: 2687 http://poe.svn.sourceforge.net/poe/?rev=2687&view=rev Author: gwyn17 Date: 2009-09-08 13:43:23 +0000 (Tue, 08 Sep 2009) Log Message: ----------- Reset the idle queue size in Kernel->stop() Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-09-12 00:09:55
|
Revision: 2690 http://poe.svn.sourceforge.net/poe/?rev=2690&view=rev Author: rcaputo Date: 2009-09-12 00:09:47 +0000 (Sat, 12 Sep 2009) Log Message: ----------- Clarify POE::Kernel->run() semantics when called from within some other event loop, thanks to criticism from "remlin" on a blog comment. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-09-18 21:57:31
|
Revision: 2695 http://poe.svn.sourceforge.net/poe/?rev=2695&view=rev Author: rcaputo Date: 2009-09-18 21:57:21 +0000 (Fri, 18 Sep 2009) Log Message: ----------- Only warn about USE_SIGNAL_PIPE when it's deliberately set on MSWin32. Thans to Torsten Raudssus and gcola on irc.perl.org #poe for mentioning the problem. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-10-03 20:39:34
|
Revision: 2714 http://poe.svn.sourceforge.net/poe/?rev=2714&view=rev Author: rcaputo Date: 2009-10-03 20:39:24 +0000 (Sat, 03 Oct 2009) Log Message: ----------- Fixed a stop() bug while working on Marius Kjeldahl's test. stop() was calling the underlying _data_sig_has_forked() method, but the singleton Kernel's has_forked() does some extra necessary cleanup. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-10-05 04:54:43
|
Revision: 2723 http://poe.svn.sourceforge.net/poe/?rev=2723&view=rev Author: rcaputo Date: 2009-10-05 04:54:32 +0000 (Mon, 05 Oct 2009) Log Message: ----------- Fix the timing of calling has_forked() from stop(). Also fix the idle queue size in child processes so they don't stall if they want to rerun POE::Kernel's event loop. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-10-05 16:29:05
|
Revision: 2729 http://poe.svn.sourceforge.net/poe/?rev=2729&view=rev Author: rcaputo Date: 2009-10-05 16:28:57 +0000 (Mon, 05 Oct 2009) Log Message: ----------- Document the POE_DANTIC environment variable. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-10-06 03:33:22
|
Revision: 2731 http://poe.svn.sourceforge.net/poe/?rev=2731&view=rev Author: rcaputo Date: 2009-10-06 03:33:15 +0000 (Tue, 06 Oct 2009) Log Message: ----------- Only install __WARN__ and __DIE__ handlers to redirect messages when TRACE_FILENAME is set. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-10-16 05:35:05
|
Revision: 2751 http://poe.svn.sourceforge.net/poe/?rev=2751&view=rev Author: rcaputo Date: 2009-10-16 05:34:45 +0000 (Fri, 16 Oct 2009) Log Message: ----------- Don't bother propagating wantarray() and tracking return values if we're not dispatching ET_CALL. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-11-17 06:44:33
|
Revision: 2752 http://poe.svn.sourceforge.net/poe/?rev=2752&view=rev Author: rcaputo Date: 2009-11-17 06:44:24 +0000 (Tue, 17 Nov 2009) Log Message: ----------- Clarify session multitasking documentation per IRC feedback from a person going by the nickname "skor". Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2009-11-23 22:04:02
|
Revision: 2753 http://poe.svn.sourceforge.net/poe/?rev=2753&view=rev Author: rcaputo Date: 2009-11-23 22:03:53 +0000 (Mon, 23 Nov 2009) Log Message: ----------- Fix a typo in a code example reported by Hinrik ?\195?\150rn Sigur?\195?\176sson on IRC. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2010-01-05 22:08:41
|
Revision: 2774 http://poe.svn.sourceforge.net/poe/?rev=2774&view=rev Author: rcaputo Date: 2010-01-05 22:08:34 +0000 (Tue, 05 Jan 2010) Log Message: ----------- Clarify what's going on in two Session References examples. Reported by "garu" in irc.perl.org #poe. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2010-01-15 17:40:37
|
Revision: 2788 http://poe.svn.sourceforge.net/poe/?rev=2788&view=rev Author: rcaputo Date: 2010-01-15 17:40:12 +0000 (Fri, 15 Jan 2010) Log Message: ----------- Correct a documentation typo reported by jussive in IRC. Modified Paths: -------------- trunk/poe/lib/POE/Kernel.pm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |