diff options
author | Neal H. Walfield <neal@gnu.org> | 2005-08-29 08:29:35 +0000 |
---|---|---|
committer | Neal H. Walfield <neal@gnu.org> | 2005-08-29 08:29:35 +0000 |
commit | 1e5a9b2969616b26f7b0e5808e3281c611146fdc (patch) | |
tree | b25425f7d78970fbc36697f89152513fd2e43b1f /pflocal/io.c | |
parent | 5c3011ee1de9a9b231270044ea52649f84cdac66 (diff) | |
download | hurd-1e5a9b2969616b26f7b0e5808e3281c611146fdc.tar.gz hurd-1e5a9b2969616b26f7b0e5808e3281c611146fdc.tar.bz2 hurd-1e5a9b2969616b26f7b0e5808e3281c611146fdc.zip |
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.
Diffstat (limited to 'pflocal/io.c')
-rw-r--r-- | pflocal/io.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/pflocal/io.c b/pflocal/io.c index bd9ecbdd..211b3dd4 100644 --- a/pflocal/io.c +++ b/pflocal/io.c @@ -1,6 +1,6 @@ /* Socket I/O operations - Copyright (C) 1995,96,98,99,2000,02 Free Software Foundation, Inc. + Copyright (C) 1995,96,98,99,2000,02, 2005 Free Software Foundation, Inc. Written by Miles Bader <miles@gnu.org> This program is free software; you can redistribute it and/or @@ -197,16 +197,16 @@ S_io_select (struct sock_user *user, if (*select_type & SELECT_READ) { - /* Wait for a connect. Passing in NULL for REQ means that the - request won't be dequeued. */ - if (connq_listen (sock->listen_queue, 1, NULL, NULL) == 0) + /* Wait for a connect. Passing in NULL for SOCK means that + the request won't be dequeued. */ + if (connq_listen (sock->listen_queue, 1, NULL) == 0) /* We can satisfy this request immediately. */ return 0; else /* Gotta wait... */ { ports_interrupt_self_on_port_death (user, reply); - return connq_listen (sock->listen_queue, 0, NULL, NULL); + return connq_listen (sock->listen_queue, 0, NULL); } } } |