towards fixing mysql plugin
[oweals/gnunet.git] / contrib / terminate.py.in
index 14c79c10d0959e565ac264f4c0c9fe6aa8498398..4a6719f38b6bb0ed9e63d7c4ec8eb1b9fdd70be7 100644 (file)
 #
 #    You should have received a copy of the GNU General Public License
 #    along with GNUnet; see the file COPYING.  If not, write to the
-#    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-#    Boston, MA 02111-1307, USA.
+#    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+#    Boston, MA 02110-1301, USA.
 #
 # Utility module that implements safe process termination for W32.
 # For other platforms it's equivalent to Popen.kill ()
 # Requires pywin32 on W32.
-\r
-import sys\r
-import os\r
-import subprocess\r
-if os.name == 'nt':\r
-  import win32api\r
-  import win32process\r
-\r
-class dummyobj (object):\r
-  pass\r
-\r
-def safe_terminate_process_by_pid (pid, code):\r
-  if os.name == 'nt':\r
-    p = dummyobj ()\r
-    p._handle = win32api.OpenProcess (2 | 1024 | 8 | 32 | 16, 0, pid)\r
-    result = safe_terminate_process (p, code)\r
-    win32api.CloseHandle (p._handle)\r
-    return result\r
-  else:\r
-    return os.kill (int (pid), SIGKILL)\r
-\r
-def safe_terminate_process (proc, code):\r
-  if os.name == 'nt':\r
-    cp = win32api.GetCurrentProcess ()\r
-    result = False\r
-    dupproc = win32api.DuplicateHandle (cp, proc._handle, cp, 2 | 1024 | 8 | 32 | 16, 0, 0)\r
-    try:\r
-      exitcode = win32process.GetExitCodeProcess (dupproc)\r
-      if exitcode == 0x103:\r
-        kernel32 = win32api.GetModuleHandle ("kernel32")\r
-        exitprocess = win32api.GetProcAddress (kernel32, "ExitProcess")\r
-        th, tid = win32process.CreateRemoteThread (dupproc, None, 0, exitprocess, code, 0)\r
-        win32api.CloseHandle (th)\r
-        result = True\r
-      else:\r
-        result = True\r
-    # except failed to get exit code? failed to get module handle?\r
-    finally:\r
-      win32api.CloseHandle (dupproc)\r
-    return result\r
-  else:\r
-    return proc.kill ()\r
+
+import sys
+import os
+import subprocess
+if os.name == 'nt':
+  import win32api
+  import win32process
+
+class dummyobj (object):
+  pass
+
+def safe_terminate_process_by_pid (pid, code):
+  if os.name == 'nt':
+    p = dummyobj ()
+    p._handle = win32api.OpenProcess (2 | 1024 | 8 | 32 | 16, 0, pid)
+    result = safe_terminate_process (p, code)
+    win32api.CloseHandle (p._handle)
+    return result
+  else:
+    return os.kill (int (pid), SIGKILL)
+
+def safe_terminate_process (proc, code):
+  if os.name == 'nt':
+    cp = win32api.GetCurrentProcess ()
+    result = False
+    dupproc = win32api.DuplicateHandle (cp, proc._handle, cp, 2 | 1024 | 8 | 32 | 16, 0, 0)
+    try:
+      exitcode = win32process.GetExitCodeProcess (dupproc)
+      if exitcode == 0x103:
+        kernel32 = win32api.GetModuleHandle ("kernel32")
+        exitprocess = win32api.GetProcAddress (kernel32, "ExitProcess")
+        th, tid = win32process.CreateRemoteThread (dupproc, None, 0, exitprocess, code, 0)
+        win32api.CloseHandle (th)
+        result = True
+      else:
+        result = True
+    # except failed to get exit code? failed to get module handle?
+    finally:
+      win32api.CloseHandle (dupproc)
+    return result
+  else:
+    return proc.kill ()