summaryrefslogtreecommitdiff
path: root/nsprpub/pr/tests/attach.c
diff options
context:
space:
mode:
Diffstat (limited to 'nsprpub/pr/tests/attach.c')
-rw-r--r--nsprpub/pr/tests/attach.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/nsprpub/pr/tests/attach.c b/nsprpub/pr/tests/attach.c
index a1493b8ec5..a5daf9d969 100644
--- a/nsprpub/pr/tests/attach.c
+++ b/nsprpub/pr/tests/attach.c
@@ -111,6 +111,16 @@ static int32 threadStartFunc(void *arg)
static void * threadStartFunc(void *arg)
#endif
{
+#ifdef _PR_DCETHREADS
+ {
+ int rv;
+ pthread_t self = pthread_self();
+ rv = pthread_detach(&self);
+ if (debug_mode) PR_ASSERT(0 == rv);
+ else if (0 != rv) failed_already=1;
+ }
+#endif
+
Measure(AttachDetach, "Attach/Detach");
#ifndef IRIX
@@ -196,12 +206,14 @@ int main(int argc, char **argv)
goto exit_now;
}
+#ifndef _PR_DCETHREADS
rv = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
if (debug_mode) PR_ASSERT(0 == rv);
else if (0 != rv) {
failed_already=1;
goto exit_now;
}
+#endif /* !_PR_DCETHREADS */
rv = _PT_PTHREAD_CREATE(&threadID, attr, threadStartFunc, NULL);
if (rv != 0) {
fprintf(stderr, "thread creation failed: error code %d\n", rv);