Bug 968432 - Implement mozilla::ipc::SetThisProcessName() on BSDs. r=dhylands
authorJan Beich <jbeich@tormail.org>
Tue, 18 Feb 2014 15:41:23 -0500
changeset 169745 85f8176a2cb70ae49180c3838c9b4d6e15a8fe8f
parent 169744 14dc29b1586b46577b72d1249b3c7219a524e67f
child 169746 33d272d4ad6c05c565b4d0f0225753a11729f42b
push id270
push userpvanderbeken@mozilla.com
push dateThu, 06 Mar 2014 09:24:21 +0000
reviewersdhylands
bugs968432
milestone30.0a1
Bug 968432 - Implement mozilla::ipc::SetThisProcessName() on BSDs. r=dhylands
ipc/glue/ProcessUtils_bsd.cpp
ipc/glue/moz.build
new file mode 100644
--- /dev/null
+++ b/ipc/glue/ProcessUtils_bsd.cpp
@@ -0,0 +1,26 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "ProcessUtils.h"
+
+#include <pthread.h>
+
+#if !defined(OS_NETBSD)
+#include <pthread_np.h>
+#endif
+
+namespace mozilla {
+namespace ipc {
+
+void SetThisProcessName(const char *aName)
+{
+#if defined(OS_NETBSD)
+  pthread_setname_np(pthread_self(), "%s", (void *)aName);
+#else
+  pthread_set_name_np(pthread_self(), aName);
+#endif
+}
+
+} // namespace ipc
+} // namespace mozilla
--- a/ipc/glue/moz.build
+++ b/ipc/glue/moz.build
@@ -71,16 +71,20 @@ if CONFIG['OS_TARGET'] == 'Android':
     ]
 else:
     EXPORTS.mozilla.ipc += ['SharedMemoryBasic_chromium.h']
 
 if CONFIG['OS_ARCH'] == 'Linux':
     UNIFIED_SOURCES += [
         'ProcessUtils_linux.cpp',
     ]
+elif CONFIG['OS_ARCH'] in ('DragonFly', 'FreeBSD', 'NetBSD', 'OpenBSD'):
+    UNIFIED_SOURCES += [
+        'ProcessUtils_bsd.cpp'
+    ]
 else:
     UNIFIED_SOURCES += [
         'ProcessUtils_none.cpp',
     ]
 
 EXPORTS.ipc += [
     'IPCMessageUtils.h',
 ]