Date: Fri, 29 Sep 2000 10:52:00 +0200 (IST) From: Roman Shterenzon <roman@harmonic.co.il> To: Alfred Perlstein <bright@wintelcom.net> Cc: freebsd-stable@FreeBSD.ORG Subject: Re: pthreads bug? Message-ID: <970217520.39d4583032fbe@webmail.harmonic.co.il> In-Reply-To: <20000929013521.C27736@fw.wintelcom.net> References: <970215688.39d451088fbef@webmail.harmonic.co.il> <20000929013521.C27736@fw.wintelcom.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Alfred Perlstein <bright@wintelcom.net>:
> > 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.
--Roman Shterenzon, UNIX System Administrator and Consultant
[ Xpert UNIX Systems Ltd., Herzlia, Israel. Tel: +972-9-9522361 ]
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?970217520.39d4583032fbe>
