Module Name: src Committed By: kamil Date: Wed Apr 24 18:47:54 UTC 2019
Modified Files: src/lib/libpthread: thrd.3 thrd.c threads.h Log Message: Introduce minor changes to the C11 threading library Switch tss_t type from int to pthread_key_t (no functional change as pthread_key_t was already typedefed as int). Noted by <enh from Google>. Use C11 _Noreturn in thrd_exit(3) instead of NetBSD specific __dead. The former is documented in the standard as an attribute of thrd_exit(3), the latter is more portable to pre-C11 compilers, however C11 thread support library needs C11 compiler for TLS anyway. __dead made a little bit more point 3 years ago than today as 3 years ago pre-C11 compilers were more common. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/lib/libpthread/thrd.3 src/lib/libpthread/thrd.c \ src/lib/libpthread/threads.h 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/thrd.3 diff -u src/lib/libpthread/thrd.3:1.1 src/lib/libpthread/thrd.3:1.2 --- src/lib/libpthread/thrd.3:1.1 Wed Apr 24 11:43:19 2019 +++ src/lib/libpthread/thrd.3 Wed Apr 24 18:47:54 2019 @@ -1,4 +1,4 @@ -.\" $NetBSD: thrd.3,v 1.1 2019/04/24 11:43:19 kamil Exp $ +.\" $NetBSD: thrd.3,v 1.2 2019/04/24 18:47:54 kamil Exp $ .\" .\" Copyright (c) 2016 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -46,7 +46,7 @@ .Fn thrd_detach "thrd_t thr" .Ft int .Fn thrd_equal "thrd_t t1" "thrd_t t2" -.Ft __dead void +.Ft _Noreturn void .Fn thrd_exit "int res" .Ft int .Fn thrd_join "thrd_t thr" "int *res" @@ -191,14 +191,6 @@ otherwise it will return non-zero. The .Fn thrd_exit function does not return. -The standard attributes this function with the -.Dv _Noreturn -keyword, -however in the -.Nx -version it is attributed with the traditional and functionally equivalent -.Dv __dead -keyword. .Pp The .Fn thrd_join Index: src/lib/libpthread/thrd.c diff -u src/lib/libpthread/thrd.c:1.1 src/lib/libpthread/thrd.c:1.2 --- src/lib/libpthread/thrd.c:1.1 Wed Apr 24 11:43:19 2019 +++ src/lib/libpthread/thrd.c Wed Apr 24 18:47:54 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: thrd.c,v 1.1 2019/04/24 11:43:19 kamil Exp $ */ +/* $NetBSD: thrd.c,v 1.2 2019/04/24 18:47:54 kamil Exp $ */ /*- * Copyright (c) 2016 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: thrd.c,v 1.1 2019/04/24 11:43:19 kamil Exp $"); +__RCSID("$NetBSD: thrd.c,v 1.2 2019/04/24 18:47:54 kamil Exp $"); #include <assert.h> #include <errno.h> @@ -85,7 +85,7 @@ thrd_equal(thrd_t t1, thrd_t t2) return pthread_equal(t1, t2); } -__dead void +_Noreturn void thrd_exit(int res) { Index: src/lib/libpthread/threads.h diff -u src/lib/libpthread/threads.h:1.1 src/lib/libpthread/threads.h:1.2 --- src/lib/libpthread/threads.h:1.1 Wed Apr 24 11:43:19 2019 +++ src/lib/libpthread/threads.h Wed Apr 24 18:47:54 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: threads.h,v 1.1 2019/04/24 11:43:19 kamil Exp $ */ +/* $NetBSD: threads.h,v 1.2 2019/04/24 18:47:54 kamil Exp $ */ /*- * Copyright (c) 2016 The NetBSD Foundation, Inc. @@ -57,7 +57,7 @@ /* ISO/IEC 9899:201x 7.26.1/4 */ typedef pthread_cond_t cnd_t; typedef pthread_t thrd_t; -typedef int tss_t; +typedef pthread_key_t tss_t; typedef pthread_mutex_t mtx_t; typedef void (*tss_dtor_t) (void *); typedef int (*thrd_start_t) (void *); @@ -106,7 +106,7 @@ int thrd_create(thrd_t *, thrd_start_t, thrd_t thrd_current(void); int thrd_detach(thrd_t); int thrd_equal(thrd_t, thrd_t); -void thrd_exit(int) __dead; +_Noreturn void thrd_exit(int); int thrd_join(thrd_t, int *); int thrd_sleep(const struct timespec *, struct timespec *); void thrd_yield(void);