1
0
Эх сурвалжийг харах

KWSys 2017-11-02 (54f0901a)

Code extracted from:

    https://gitlab.kitware.com/utils/kwsys.git

at commit 54f0901ad1a1c545a1360a19b5c521857b5a66ec (master).

Upstream Shortlog
-----------------

Bryon Bean (1):
      8e428c18 Process: Add function to kill process (and children) with pid
KWSys Upstream 8 жил өмнө
parent
commit
5464e23ff5
3 өөрчлөгдсөн 18 нэмэгдсэн , 0 устгасан
  1. 8 0
      Process.h.in
  2. 5 0
      ProcessUNIX.c
  3. 5 0
      ProcessWin32.c

+ 8 - 0
Process.h.in

@@ -77,6 +77,7 @@
 #define kwsysProcess_WaitForExit kwsys_ns(Process_WaitForExit)
 #define kwsysProcess_Interrupt kwsys_ns(Process_Interrupt)
 #define kwsysProcess_Kill kwsys_ns(Process_Kill)
+#define kwsysProcess_KillPID kwsys_ns(Process_KillPID)
 #define kwsysProcess_ResetStartTime kwsys_ns(Process_ResetStartTime)
 #endif
 
@@ -456,6 +457,13 @@ kwsysEXPORT void kwsysProcess_Interrupt(kwsysProcess* cp);
  */
 kwsysEXPORT void kwsysProcess_Kill(kwsysProcess* cp);
 
+/**
+ * Same as kwsysProcess_Kill using process ID to locate process to
+ * terminate.
+ * @see kwsysProcess_Kill(kwsysProcess* cp)
+ */
+kwsysEXPORT void kwsysProcess_KillPID(unsigned long);
+
 /**
  * Reset the start time of the child process to the current time.
  */

+ 5 - 0
ProcessUNIX.c

@@ -2485,6 +2485,11 @@ static pid_t kwsysProcessFork(kwsysProcess* cp,
 #define KWSYSPE_PS_FORMAT "%d %d %*[^\n]\n"
 #endif
 
+void kwsysProcess_KillPID(unsigned long process_id)
+{
+  kwsysProcessKill((pid_t)process_id);
+}
+
 static void kwsysProcessKill(pid_t process_id)
 {
 #if defined(__linux__) || defined(__CYGWIN__)

+ 5 - 0
ProcessWin32.c

@@ -1466,6 +1466,11 @@ void kwsysProcess_Kill(kwsysProcess* cp)
      for them to exit.  */
 }
 
+void kwsysProcess_KillPID(unsigned long process_id)
+{
+  kwsysProcessKillTree((DWORD)process_id);
+}
+
 /*
   Function executed for each pipe's thread.  Argument is a pointer to
   the kwsysProcessPipeData instance for this thread.