diff options
Diffstat (limited to 'src/lib/libc/net')
| -rw-r--r-- | src/lib/libc/net/res_random.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/libc/net/res_random.c b/src/lib/libc/net/res_random.c index 72b9c41a2a..763e420bb8 100644 --- a/src/lib/libc/net/res_random.c +++ b/src/lib/libc/net/res_random.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: res_random.c,v 1.23 2015/10/05 02:57:16 guenther Exp $ */ | 1 | /* $OpenBSD: res_random.c,v 1.24 2016/04/05 04:29:21 guenther Exp $ */ |
| 2 | 2 | ||
| 3 | /* | 3 | /* |
| 4 | * Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de> | 4 | * Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de> |
| @@ -230,12 +230,12 @@ __res_randomid(void) | |||
| 230 | struct timespec ts; | 230 | struct timespec ts; |
| 231 | pid_t pid; | 231 | pid_t pid; |
| 232 | u_int r; | 232 | u_int r; |
| 233 | _THREAD_PRIVATE_MUTEX(random); | 233 | static void *randomid_mutex; |
| 234 | 234 | ||
| 235 | clock_gettime(CLOCK_MONOTONIC, &ts); | 235 | clock_gettime(CLOCK_MONOTONIC, &ts); |
| 236 | pid = getpid(); | 236 | pid = getpid(); |
| 237 | 237 | ||
| 238 | _THREAD_PRIVATE_MUTEX_LOCK(random); | 238 | _MUTEX_LOCK(&randomid_mutex); |
| 239 | 239 | ||
| 240 | if (ru_counter >= RU_MAX || ts.tv_sec > ru_reseed || pid != ru_pid) { | 240 | if (ru_counter >= RU_MAX || ts.tv_sec > ru_reseed || pid != ru_pid) { |
| 241 | res_initid(); | 241 | res_initid(); |
| @@ -248,7 +248,7 @@ __res_randomid(void) | |||
| 248 | 248 | ||
| 249 | r = permute15(ru_seed ^ pmod(ru_g, ru_seed2 + ru_x, RU_N)) | ru_msb; | 249 | r = permute15(ru_seed ^ pmod(ru_g, ru_seed2 + ru_x, RU_N)) | ru_msb; |
| 250 | 250 | ||
| 251 | _THREAD_PRIVATE_MUTEX_UNLOCK(random); | 251 | _MUTEX_UNLOCK(&randomid_mutex); |
| 252 | 252 | ||
| 253 | return (r); | 253 | return (r); |
| 254 | } | 254 | } |
