fix the pthread pt_lid in the fork callback function that runs in the child instead of a function that may be going away. KNFify

This commit is contained in:
explorer 2010-03-25 01:15:00 +00:00
parent ea34e88ea7
commit fc70b598c4
1 changed files with 5 additions and 4 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: pthread.c,v 1.114 2010/03/24 07:27:22 explorer Exp $ */
/* $NetBSD: pthread.c,v 1.115 2010/03/25 01:15:00 explorer Exp $ */
/*-
* Copyright (c) 2001, 2002, 2003, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
__RCSID("$NetBSD: pthread.c,v 1.114 2010/03/24 07:27:22 explorer Exp $");
__RCSID("$NetBSD: pthread.c,v 1.115 2010/03/25 01:15:00 explorer Exp $");
#define __EXPOSE_STACK 1
@ -235,11 +235,14 @@ pthread__init(void)
static void
pthread__fork_callback(void)
{
struct __pthread_st *self;
/* lwpctl state is not copied across fork. */
if (_lwp_ctl(LWPCTL_FEATURE_CURCPU, &pthread__first->pt_lwpctl)) {
err(1, "_lwp_ctl");
}
self = pthread__self();
self->pt_lid = _lwp_self();
}
static void
@ -256,8 +259,6 @@ pthread__child_callback(void)
* much. Anything that permits some pthread_* calls to work is
* merely being polite.
*/
struct __pthread_st *self = pthread_self();
self->pt_lid = _lwp_self();
pthread__started = 0;
}