From 5c6e7857ac2d5db80969982a3c2a03b57ba9ac73 Mon Sep 17 00:00:00 2001 From: adam j hartz Date: Thu, 9 Jun 2016 22:24:47 -0400 Subject: [PATCH] attempted fix for PermissionError and ProcessLookupError on Cygwin --- xonsh/jobs.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/xonsh/jobs.py b/xonsh/jobs.py index 4acb76ac4..2dae04fdb 100644 --- a/xonsh/jobs.py +++ b/xonsh/jobs.py @@ -24,6 +24,19 @@ if ON_DARWIN: elif ON_WINDOWS: pass +elif ON_CYGWIN: + # Similar to what happened on OSX, more issues on Cygwin + # (see Github issue #514). + def _send_signal(job, signal): + try: + os.killpg(job['pgrp'], signal) + except (PermissionError, ProcessLookupError): + for pid in job['pids']: + try: + os.kill(pid, signal) + except: + pass + else: def _send_signal(job, signal): os.killpg(job['pgrp'], signal)