From owner-freebsd-stable Fri Sep 29 2:17: 1 2000 Delivered-To: freebsd-stable@freebsd.org Received: from fw.wintelcom.net (ns1.wintelcom.net [209.1.153.20]) by hub.freebsd.org (Postfix) with ESMTP id 6AA7237B423 for ; Fri, 29 Sep 2000 02:16:44 -0700 (PDT) Received: (from bright@localhost) by fw.wintelcom.net (8.10.0/8.10.0) id e8T9GeB01067; Fri, 29 Sep 2000 02:16:40 -0700 (PDT) Date: Fri, 29 Sep 2000 02:16:39 -0700 From: Alfred Perlstein To: Roman Shterenzon Cc: freebsd-stable@FreeBSD.ORG Subject: Re: pthreads bug? Message-ID: <20000929021639.D27736@fw.wintelcom.net> References: <970215688.39d451088fbef@webmail.harmonic.co.il> <20000929013521.C27736@fw.wintelcom.net> <970217520.39d4583032fbe@webmail.harmonic.co.il> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.4i In-Reply-To: <970217520.39d4583032fbe@webmail.harmonic.co.il>; from roman@harmonic.co.il on Fri, Sep 29, 2000 at 10:52:00AM +0200 Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG * Roman Shterenzon [000929 01:52] wrote: > Quoting Alfred Perlstein : > > > I attach example program, which, when receives SIGUSR1 should close > > the socket, > > > but, in fact gets blocked in the close() function. > > > Obviously it's waiting to acquire some lock. > > > Does anyone have an idea? > > > > Yes, I have an idea and an idea how to fix it, I'm wondering what > > the thread in accept() sees after this happens? > > > > what is the errno from accept? > The point is, that when close() is called, accept doesn't break out. > > from close(2) > IMPLEMENTATION NOTES > In the non-threaded library close() is implemented as the close syscall. > > In the threaded library, the close syscall is assembled to > _thread_sys_close() and close() is implemented as a function which locks > d for read and write, then calls _thread_sys_close(). Before returning, > close() unlocks d. > > > So from my point of view the close tries to acquire a lock. I know that, I should have been more clear, what is in errno on Linux and Solaris so that I can emulate that? -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] "I have the heart of a child; I keep it in a jar on my desk." To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message