Charles-François Natali <neolo...@free.fr> added the comment:

> The problem I have with the solution that is currently implemented is that 
> subprocess is waiting for the spawned child although the child is not running 
> anymore.
> In my case this issue occured when invoking samba or the small sample daemon 
> (see attached file above).
> For example, invoking the daemon from a bash, the daemon program exits 
> immediately and its spawned child is running in the background. The point is 
> that the bash is accessible right after starting the daemon. It is not 
> waiting for the daemon process in the background to close the open pipe.
>
> What do you think of using a waitpid for this scenario?
> subprocess.Popen could wait for the pid of the daemon starter and gets back 
> control once the pid of the daemon starter is gone. This way, 
> subprocess.Popen does not need to wait for EOF on left-open pipes.

That would defeat the semantics of communicate(): it is supposed to
wait until EOF.
If this doesn't work for your use case, simply don't use
communicate(), or close stdout and stderr in your child process.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue13422>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to