> I think that catching the exception is probably the most Pythonic way.
It's the only correct way. -- Devin On Mon, Jan 2, 2012 at 6:51 PM, MRAB <pyt...@mrabarnett.plus.com> wrote: > On 02/01/2012 23:09, Jérôme wrote: >> >> Hi all. >> >> When a subprocess is running, it can be sent a signal with the send_signal >> method : >> >> process = Popen( args) >> process.send_signal(signal.SIGINT) >> >> If the SIGINT is sent while the process has already finished, an error is >> raised : >> >> File "/usr/lib/python2.7/subprocess.py", line 1457, in send_signal >> os.kill(self.pid, sig) >> OSError: [Errno 3] Aucun processus de ce type >> >> To avoid this, I can check that the process is still alive : >> >> process = Popen( args) >> process.poll() >> if (None == process.returncode): >> process.send_signal(signal.SIGINT) >> >> It makes safer, but there is still an issue if the process ends between >> poll() and send_signal(). >> >> What is the clean way to avoid this race condition ? >> >> Should I use try/except to catch the error or is there a more elegant way >> to >> go ? >> > I think that catching the exception is probably the most Pythonic way. > -- > http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list