* Roman Shterenzon <[EMAIL PROTECTED]> [000929 01:52] wrote:
> Quoting Alfred Perlstein <[EMAIL PROTECTED]>:
> > > 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 - [[EMAIL PROTECTED]|[EMAIL PROTECTED]]
"I have the heart of a child; I keep it in a jar on my desk."
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-stable" in the body of the message