From owner-freebsd-current Thu Dec 3 09:36:36 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA29985 for freebsd-current-outgoing; Thu, 3 Dec 1998 09:36:36 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from highwind.com (hurricane.highwind.com [209.61.45.50]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id JAA29978 for ; Thu, 3 Dec 1998 09:36:28 -0800 (PST) (envelope-from info@highwind.com) Received: (from info@localhost) by highwind.com (8.8.6/8.8.6) id MAA01016; Thu, 3 Dec 1998 12:35:30 -0500 (EST) Date: Thu, 3 Dec 1998 12:35:30 -0500 (EST) Message-Id: <199812031735.MAA01016@highwind.com> From: HighWind Software Information To: current@FreeBSD.ORG In-reply-to: <199812031522.KAA28193@highwind.com> (message from HighWind Software Information on Thu, 3 Dec 1998 10:22:31 -0500 (EST)) Subject: Re: Thread fd locking and fork() Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG >Is there any solution to this? Perhaps the fork() code should unlock >all the descriptors. In looking at my own suggestion... fork() in libc_r currently removes all but the running thread from the thread list. Here's my problem, don't all the fd's have a queue of pointers back to those thread structures in their r_queue and w_queue members? Don't those need to be all cleaned up ANYWAY?? Despite my reporting of this bug. I think, fork() needs to: Continue to remove all threads but the running thread from the thread list, then go over the fd's and unlock and cleanup all queues. -Rob To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message