Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re^3: Threads memory consumption

by zwon (Abbot)
on Dec 05, 2013 at 15:36 UTC ( #1065776=note: print w/replies, xml ) Need Help??

in reply to Re^2: Threads memory consumption
in thread Threads memory consumption

It is possible to pass result to parent process, and is quite easy. You can use Parallel::ForkManager for example:
use 5.010; use strict; use warnings; use Parallel::ForkManager; use Data::Printer; my $pm = Parallel::ForkManager->new(2); $pm->run_on_finish( sub { # result from the child will be passed as 6th arg to callback my $res = $_[5]; p $res; } ); for (1..3) { $pm->start and next; # from here and till $pm->finish child process running # do something useful and store result in $res my $res = { aaa => $_ }; # this will terminate child and pass $res to parent process $pm->finish(0, $res); } $pm->wait_all_children;

Replies are listed 'Best First'.
Re^4: Threads memory consumption
by mojo2405 (Acolyte) on Dec 06, 2013 at 12:16 UTC
    Thanks alot ! used this method - and everything works for me great now. I have a question about this method - Can I have some shared data between the child forks ?
      Yes you can, see IPC::Shareable and IPC::ShareLite, but I don't recommend you to use these -- refactor your program so it wouldn't require shared variables, or use some message passing module instead.
        Can you recommend on a message passing module I can use ?
        Hey, Do you know if I can share a hash ? or even an object ? I want to share and lock an object that exist inside a hash - if accessed.. Thanks

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (2)
As of 2021-09-27 12:13 GMT
Find Nodes?
    Voting Booth?

    No recent polls found