win32::process and nested fork()s

Discussion in 'Ruby' started by Martin Carpenter, Mar 10, 2007.

  1. I can't seem to make nested fork()s (granchildren processes) work with the
    win32::process module. Here's my simple test script:

    1 require "win32/process"
    2
    3 Process.fork do
    4 $stdout."child #{Process.pid}" ; $stdout.flush
    5 2.times{
    6 Process.fork do
    7 $stdout.puts "sub-child #{Process.pid}" ; $stdout.flush
    8 end
    9 }
    10 end

    Output from my test script below gives:

    Windows:
    child 4384

    Linux (using the "native" Process.fork, ie. skipping the require on line 1):
    child 5126
    sub-child 5127
    sub-child 5128

    If I comment out lines 6 and 8, I get an appropriate amount of output from
    windows (although, of course, always with the same PID). I'm not sure if
    this is a problem with win32::process, with the IO stream... or with
    something else entirely?

    On Windows, I'm running:
    * WinXP SP2
    * ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]
    * win32-process (0.5.2, 0.5.1)


    Thanks for any help!

    Martin.
     
    Martin Carpenter, Mar 10, 2007
    #1
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.