bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: non-blocking connect fails with no pending acceptors


From: Neal H. Walfield
Subject: Re: non-blocking connect fails with no pending acceptors
Date: Mon, 29 Aug 2005 09:30:42 +0100
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/21.4 (i386-pc-linux-gnu) MULE/5.0 (SAKAKI)

This has received through testing in the Debian package.  I've now
committed it to ams-branch.

> pflocal/
> 
> 2005-05-17  Neal H. Walfield  <neal@gnu.org>
> 
>       * connq.h (struct connq_request): Remove forward.
>       (connq_listen): Wait for a request to be queued not until there is
>       a connection attempt.  Remove REQ parameter.  Update callers.
>       (connq_request_complete): Remove declaration.
>       (connq_connect): Wait for a slot to queue a request not until
>       there is an acceptor.  Remove SOCK parameter.  Update callers.
>       (connq_connect_complete): New declaration.
>       (connq_connect_cancel): New declaration.
>       
>       * connq.c (struct connq): Remove fields noqueue, queue, length,
>       head and tail.  Add fields head, tail, count, max, connectors and
>       num_connectors.  That is, replace the circular buffer with a
>       singly linked list.
>       (qnext): Remove function.
>       (struct connq_request): Remove field signal, lock, completed and
>       err.  Add field next.
>       (connq_request_init): Rewrite according to new semantics.
>       (connq_request_enqueue): New function.
>       (connq_request_dequeue): New function.
>       (connq_create): Update according to new semantics.
>       (connq_destroy): Likewise.
>       (connq_listen): Rewrite to not block until there is a connector
>       but until there is a request in the queue.
>       (connq_request_complete): Remove function.
>       (connq_connect): Rewrite to not block until there is an acceptor
>       but until there is space for a request.
>       (connq_connect_complete): New function.
>       (connq_connect_cancel): New function.
>       (connq_compress): Remove dead code.
>       (connq_set_length): Rewrite.
> 
>       * socket.c (S_socket_connect): Create the server socket here...
>       (S_socket_accept): ... not here.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]