make process.kill a no-op on windows
authorIgor Zinkovsky <igorzi@microsoft.com>
Fri, 21 Oct 2011 16:08:19 +0000 (09:08 -0700)
committerRyan Dahl <ry@tinyclouds.org>
Fri, 21 Oct 2011 17:27:22 +0000 (10:27 -0700)
src/node.js
test/simple/test-process-kill-null.js

index fddf320..2214a8b 100644 (file)
   };
 
   startup.processKillAndExit = function() {
+    var isWindows = process.platform === 'win32';
+
     process.exit = function(code) {
       process.emit('exit', code || 0);
       process.reallyExit(code || 0);
     };
 
-    process.kill = function(pid, sig) {
-      // preserve null signal
-      if (0 === sig) {
-        process._kill(pid, 0);
-      } else {
-        sig = sig || 'SIGTERM';
-        if (startup.lazyConstants()[sig]) {
-          process._kill(pid, startup.lazyConstants()[sig]);
+    if (isWindows) {
+      process.kill = function(pid, sig) {
+        console.warn('process.kill() is not supported on Windows.  Use ' +
+                     'child.kill() to kill a process that was started '  +
+                     'with child_process.spawn().');
+      }
+    } else {
+      process.kill = function(pid, sig) {
+        // preserve null signal
+        if (0 === sig) {
+          process._kill(pid, 0);
         } else {
-          throw new Error('Unknown signal: ' + sig);
+          sig = sig || 'SIGTERM';
+          if (startup.lazyConstants()[sig]) {
+            process._kill(pid, startup.lazyConstants()[sig]);
+          } else {
+            throw new Error('Unknown signal: ' + sig);
+          }
         }
-      }
-    };
+      };
+    }
   };
 
   startup.processSignalHandlers = function() {
index 54caca2..1b9ba17 100644 (file)
 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
 // USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-// libuv-broken
-
+if (process.platform === 'win32') {
+  console.warn('Skipping because process.kill is not supported on windows');
+  process.exit(0);
+}
 
 
 var assert = require('assert');