http://www.perlmonks.org?node_id=1012615

rbhardwaj has asked for the wisdom of the Perl Monks concerning the following question:

Hi Perl Monks,

I've a query regarding usage of prefork implementation of POE IKC Server.

POE Children stop entertaining further connection requests as soon as they are done with first connection request per child.

Below is the code snippet of core module POE::Component::IKC::Server which seems to cause this behavior. Commenting the call to '_select_define' in 'else' part resolves this issue as we shouldn't stop accepting further connection requests.

Before going to module author; i would like to ensure that my understanding is indeed correct Please advise.

P.S. : i can share sample client/server code to simulate this scenario

...... return unless $heap->{children}; if (--$heap->{connections} < 1) { # DEBUG and warn "$$: {{{{{{{{{{{{{{{ Game over\n"; $kernel->delay('waste_time'); _delete_wheel( $heap ); $::TRACE_REFCNT = 1; } else { # DEBUG and warn "$$: $heap->{connections} connections left\n"; _select_define($heap, 0); } ......

Replies are listed 'Best First'.
Re: Possible issue with pre-forked POE IKC Server implementation
by rcaputo (Chaplain) on Jan 10, 2013 at 13:30 UTC

    Hi. If it's something in the _select_define($heap, 0) call, then it stands to reason that the problem might be inside that function. Maybe that function is interfering with the original selects that accept connections? Seeing its implementation might help.

      thanks for your reply. _select_define simply makes the accept to be paused or resumed based on the argument provided which is to make it paused in our case. I'm wondering whether i should directly report it as a possible bug to author or should I first look in community if anybody else encountered this scenario as i may be missing something