Re: Re: cleanup_for_exec() v/s spawn_proc_prog()

[email protected]
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
> Hi Israel,

Hi Michael,

>
> I haven't used this but it looks like $r->cleanup_for_exec is used, in
> the child once forked, to close the socket connecting Apache and the
> client, failing which the child will hold on to the socket as long as
> it runs, which will prevent Apache from reclaiming the same address on
> restart (as explained in "Freeing the Parent Process" on the page you're
> referring to).
>
> Looks like cleanup_for_exec was part of a mod_perl 1.0 third-party
> module, isn't needed in mod_perl 2.0 any more and is only provided
> as a NOOP in Apache2::compat.
>
> http://perl.apache.org/docs/2.0/user/porting/compat.html#C____r_E_gt_cleanup_for_exec___
>
>           \,,,/
>           (o o)
> ------oOOo-(_)-oOOo------
> $r->cleanup_for_exec wasn't a part of the mp1 core API, but
> lived in a 3rd party module Apache2::SubProcess [this should
> read Apache::SubProcess - M.L.]. That module's functionality
> is now a part of mod_perl 2.0 API. But Apache 2.0 doesn't
> need this function any longer.
> -------------------------
> This is the 1.0 third-party module defining cleanup_for_exec:
>
> http://cpansearch.perl.org/src/DOUGM/Apache-SubProcess-0.03/SubProcess.xs
>
> The other function you're wondering about, spawn_proc_prog in mod_perl
> 2.0 (Apache2::SubProcess), seems to be for running external programs
> from mod_perl 2.0. The 1.0 equivalents, I think, are described in the
> sections "Starting a Long Running External Program" and "Starting a
> Short Running External Program" on the page you're referring to.
>

Thanks for the clarification. Finally I decided to use:

$r->push_handlers( PerlCleanupHandler => sub { $obj->method } );

where $obj->method() executes the (short) external programs after the
request have been served.

--
Israel Leiva
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.