From owner-p4-projects@FreeBSD.ORG Thu Jan 6 05:15:27 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AF94216A4D0; Thu, 6 Jan 2005 05:15:26 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 81DF616A4CE for ; Thu, 6 Jan 2005 05:15:26 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6F29843D39 for ; Thu, 6 Jan 2005 05:15:26 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j065FQAR077749 for ; Thu, 6 Jan 2005 05:15:26 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j065FQsc077746 for perforce@freebsd.org; Thu, 6 Jan 2005 05:15:26 GMT (envelope-from davidxu@freebsd.org) Date: Thu, 6 Jan 2005 05:15:26 GMT Message-Id: <200501060515.j065FQsc077746@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 68374 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Jan 2005 05:15:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=68374 Change 68374 by davidxu@davidxu_celeron on 2005/01/06 05:14:52 Return thread pointer eariler since some code assumes new thread can use the pointer.(new thread may run before orignal thread returns from pthread_create). Affected files ... .. //depot/projects/davidxu_thread/src/lib/libthread/thread/thr_create.c#4 edit Differences ... ==== //depot/projects/davidxu_thread/src/lib/libthread/thread/thr_create.c#4 (text+ko) ==== @@ -206,14 +206,14 @@ new_thread->sigmask = curthread->sigmask; /* Add the new thread. */ _thr_link(curthread, new_thread); + /* Return a pointer to the thread structure: */ + (*thread) = new_thread; ret = thr_create(&uc, &new_thread->tid, 0); __sys_sigprocmask(SIG_SETMASK, &curthread->sigmask, NULL); if (ret != 0) { _thr_unlink(curthread, new_thread); free_thread(curthread, new_thread); - } else { - /* Return a pointer to the thread structure: */ - (*thread) = new_thread; + (*thread) = 0; } } }