Check that PR_SET_NAME is defined.
authorBen Noordhuis <info@bnoordhuis.nl>
Mon, 4 Jul 2011 12:29:59 +0000 (14:29 +0200)
committerBen Noordhuis <info@bnoordhuis.nl>
Mon, 4 Jul 2011 15:23:14 +0000 (17:23 +0200)
Avoids breaking the build with older (pre-2006) linux kernels.
Raises a JS exception if the script tries to assign to `process.title`.

Fixes #840.

src/platform_linux.cc

index 54937b4..827b8d4 100644 (file)
@@ -64,9 +64,15 @@ char** Platform::SetupArgs(int argc, char *argv[]) {
 
 
 void Platform::SetProcessTitle(char *title) {
+#ifdef PR_SET_NAME
   if (process_title) free(process_title);
   process_title = strdup(title);
   prctl(PR_SET_NAME, process_title);
+#else
+  Local<Value> ex = Exception::Error(
+    String::New("'process.title' is not writable on your system, sorry."));
+  ThrowException(ex); // Safe, this method is only called from the main thread.
+#endif
 }