* 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

Reply via email to