Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Parallel::ForkManager using up Resources?

by kvale (Monsignor)
on Mar 29, 2005 at 16:49 UTC ( #443181=note: print w/replies, xml ) Need Help??


in reply to Parallel::ForkManager eating up Resources?

Without seeing your code, it is hard to tell. But it sounds like you might not be waiting for your current children to die before spawning new children. Then finally at the end of the parent program, all the children are reaped.

-Mark

  • Comment on Re: Parallel::ForkManager using up Resources?

Replies are listed 'Best First'.
Re^2: Parallel::ForkManager using up Resources?
by guice (Scribe) on Mar 29, 2005 at 17:01 UTC
    All using ForkManager. Children die and close their DB handles in order. Quickly post:
    foreach my $ln (@lines) { $pm->start && next; ** child starts my $dbh = $this->_child_db(); ... code here ** child finishes with _close_child(); $this->_close_child(); $pm->finish } $pm->wait_all_children() _child_db() { if (!$this->{'_dbh-child')) { print $$ . ": Creating Child DB Handle"; $this->{'_dbh-child'} = new DBI::Connect ......; } return $this->{'_dbh-child'}; } _close_child() { print $$ . ": Closing child DB Handle"; $this->{'_dbh-child'}->disconnect(); delete($this->{'_dbh-child'}); }

    Very rough, please don't try to compile it. All my code is on an internal system not connected to the internet.

    My code is all very verbose. Everything is working correctly and in order. All children to finish, total 6 processes max ever within top. Finish is always seen before a Start.

    -- philip
    We put the 'K' in kwality!

      Also -- I've added close and finish methods for each child process through ForkManager, too:
      $pm->run_on_start(\&_child_start); $pm->run_on_finish(\&_child_finish); sub _child_start() { my ($pid, $ident) = @_; print "**** STARTED: child with PID $pid"; } sub _child_finish(){ my ($pid, $exit, $ident) = @_; print "**** FINISHED: child with PID $pid exit cide $exit"; }

      -- philip
      We put the 'K' in kwality!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://443181]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (3)
As of 2022-12-04 09:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?