Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Re: Perl forking and shared memory strangeness under Windows

by Roger (Parson)
on Feb 23, 2004 at 22:45 UTC ( [id://331243]=note: print w/replies, xml ) Need Help??


in reply to Re: Perl forking and shared memory strangeness under Windows
in thread Perl forking and shared memory strangeness under Windows

Hi xiper, as BrowserUk has suggested earlier, there is a problem with forking under Windows. The cure is to create two separate instances of Shareable, one in child and one in parent. So the require should be after the fork. I modified the code to below and it ran without problems.
use strict; $|++; # do some unrelated forking with $share in scope unless( fork ) { exit 0 } require Win32::MMF::Shareable; tie( my $share, 'Win32::MMF::Shareable', 'share' ) || die; $share = 'foo'; # make sure child exits before continuing sleep 1; # set/get crashes print "----before\n"; $share = 'bar'; my $temp = $share; print "----after\n";

Replies are listed 'Best First'.
Re: Re: Re: Perl forking and shared memory strangeness under Windows
by xiper (Friar) on Feb 24, 2004 at 00:52 UTC
    Yes, but a solution that changes the logic of a program isn't practical. You're effectivly saying that "you can't fork with a tied variable in scope" - even if the child has nothing to do with the tied variable. My point was it isn't always possible (nor should it be) to redesign a program around this 'solution'.

    - ><iper

    use japh; print;

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2024-04-23 18:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found