$NetBSD: patch-az,v 1.3 2013/07/20 08:57:20 ryoon Exp $ https://bugzilla.mozilla.org/show_bug.cgi?id=782111 --- nsprpub/pr/src/pthreads/ptthread.c.orig 2012-06-22 01:36:02.000000000 +0000 +++ nspr/pr/src/pthreads/ptthread.c @@ -21,6 +21,10 @@ #include #include +#if defined(OPENBSD) || defined(FREEBSD) || defined(DRAGONFLY) +#include +#endif + #ifdef SYMBIAN /* In Open C sched_get_priority_min/max do not work properly, so we undefine * _POSIX_THREAD_PRIORITY_SCHEDULING here. @@ -1041,12 +1045,12 @@ PR_IMPLEMENT(void) PR_ProcessExit(PRIntn _exit(status); } -PR_IMPLEMENT(PRUint32) PR_GetThreadID(PRThread *thred) +PR_IMPLEMENT(pthread_t) PR_GetThreadID(PRThread *thred) { #if defined(_PR_DCETHREADS) return (PRUint32)&thred->id; /* this is really a sham! */ #else - return (PRUint32)thred->id; /* and I don't know what they will do with it */ + return thred->id; /* and I don't know what they will do with it */ #endif } @@ -1619,7 +1623,7 @@ PR_IMPLEMENT(PRStatus) PR_SetCurrentThre { PRThread *thread; size_t nameLen; - int result; + int result = 0; if (!name) { PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); @@ -1637,8 +1641,10 @@ PR_IMPLEMENT(PRStatus) PR_SetCurrentThre return PR_FAILURE; memcpy(thread->name, name, nameLen + 1); -#if defined(OPENBSD) || defined(FREEBSD) - result = pthread_set_name_np(thread->id, name); +#if defined(OPENBSD) || defined(FREEBSD) || defined(DRAGONFLY) + pthread_set_name_np(thread->id, name); +#elif defined(NETBSD) + pthread_setname_np(thread->id, "%s", (void *)name); #else /* not BSD */ /* * On OSX, pthread_setname_np is only available in 10.6 or later, so test