Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^2: Simultaneously reading from a file and serving data

by wazoox (Prior)
on Feb 27, 2014 at 19:50 UTC ( #1076440=note: print w/ replies, xml ) Need Help??


in reply to Re: Simultaneously reading from a file and serving data
in thread Simultaneously reading from a file and serving data

The problem with a fork is that the %data won't be shared between processes...


Comment on Re^2: Simultaneously reading from a file and serving data
Replies are listed 'Best First'.
Re^3: Simultaneously reading from a file and serving data
by grondilu (Pilgrim) on Feb 28, 2014 at 19:31 UTC

    WARNING: I'm afraid this message is actually irrelevant. See EDIT note at the end.

    Well, you can have your two processes communicate with yet another named pipe. I really think you should (re-)read perlipc. There are lots of examples for this kind of stuff. Check out the open() command for instance. You can use it to fork and create a named pipe in the same time. See the "Safe Pipe Opens" section.

    Maybe something like this:

    if (my $pid = open(JSON, '|-') { # database stuff print JSON $json; } else { # this is the child fork. # STDIN here is actually JSON in the other fork. # network stuff my $json = <>; # some more network stuff I guess }

    EDIT I've just realized this wont solve your issue since the child process would block waiting for data from the parent process. It can't do that *AND* act as a network server at the same time. It only moves the blocking problem from one place to an other. So I'm sorry, I don't know.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (8)
As of 2015-07-29 06:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (260 votes), past polls