Summary: std.concurrency and fork/execv
           Product: D
           Version: D2
          Platform: x86
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Phobos

--- Comment #0 from Jonathan Sternberg <> 2011-10-23 
14:22:30 PDT ---
Created an attachment (id=1042)
example code from description

Attached is a sample program that I believe should work, but doesn't. The
program is a simple command runner.

It runs a maximum of 4 processes at once and each process is just "echo
<number>". The command runner uses "spawn" to create a new thread. This thread
then immediately forks and calls execv in the child. The parent then waits on
the newly created process. When it finishes, it sends it's tid and the exit
status of the command.

When run, sometimes a thread will seem to stall on the execv call. It seems
that the fork happened successfully, but a quick check with "ps" will reveal
that two processes named "test" exist (the forked one should have been

The program then has no way to continue by itself. The only way to make it
continue is to call "kill" on the newly created processes.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to