Module Name: src Committed By: ad Date: Wed Jan 29 17:11:57 UTC 2020
Modified Files: src/lib/libpthread: pthread.c Log Message: - pthread_join(): remove temporary hack now kernel returns correct errno. - kill(getpid(), SIGABRT) -> _lwp_kill(_lwp_self(), SIGABRT) To generate a diff of this commit: cvs rdiff -u -r1.161 -r1.162 src/lib/libpthread/pthread.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libpthread/pthread.c diff -u src/lib/libpthread/pthread.c:1.161 src/lib/libpthread/pthread.c:1.162 --- src/lib/libpthread/pthread.c:1.161 Wed Jan 29 16:03:44 2020 +++ src/lib/libpthread/pthread.c Wed Jan 29 17:11:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: pthread.c,v 1.161 2020/01/29 16:03:44 kamil Exp $ */ +/* $NetBSD: pthread.c,v 1.162 2020/01/29 17:11:57 ad Exp $ */ /*- * Copyright (c) 2001, 2002, 2003, 2006, 2007, 2008, 2020 @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: pthread.c,v 1.161 2020/01/29 16:03:44 kamil Exp $"); +__RCSID("$NetBSD: pthread.c,v 1.162 2020/01/29 17:11:57 ad Exp $"); #define __EXPOSE_STACK 1 @@ -719,10 +719,6 @@ pthread_join(pthread_t thread, void **va if (thread == self) return EDEADLK; - /* XXX temporary - kernel should handle. */ - if ((thread->pt_flags & PT_FLAG_DETACHED) != 0) - return EINVAL; - /* IEEE Std 1003.1 says pthread_join() never returns EINTR. */ for (;;) { pthread__testcancel(self); @@ -1101,8 +1097,7 @@ pthread__assertfunc(const char *file, in function ? "\"" : ""); _sys_write(STDERR_FILENO, buf, (size_t)len); - (void)kill(getpid(), SIGABRT); - + (void)_lwp_kill(_lwp_self(), SIGABRT); _exit(1); } @@ -1137,7 +1132,7 @@ pthread__errorfunc(const char *file, int syslog(LOG_DEBUG | LOG_USER, "%s", buf); if (pthread__diagassert & DIAGASSERT_ABORT) { - (void)kill(getpid(), SIGABRT); + (void)_lwp_kill(_lwp_self(), SIGABRT); _exit(1); } }