Moved poll handling to the generic part of the server objects.
Fixed busy waiting on POLLERR events.
Merged struct client into struct thread.
diff --git a/server/handle.c b/server/handle.c
index ea6d6c8..be81511 100644
--- a/server/handle.c
+++ b/server/handle.c
@@ -69,17 +69,19 @@
static const struct object_ops handle_table_ops =
{
- sizeof(struct handle_table),
- handle_table_dump,
- no_add_queue,
- NULL, /* should never get called */
- NULL, /* should never get called */
- NULL, /* should never get called */
- no_read_fd,
- no_write_fd,
- no_flush,
- no_get_file_info,
- handle_table_destroy
+ sizeof(struct handle_table), /* size */
+ handle_table_dump, /* dump */
+ no_add_queue, /* add_queue */
+ NULL, /* remove_queue */
+ NULL, /* signaled */
+ NULL, /* satisfied */
+ NULL, /* get_poll_events */
+ NULL, /* poll_event */
+ no_read_fd, /* get_read_fd */
+ no_write_fd, /* get_write_fd */
+ no_flush, /* flush */
+ no_get_file_info, /* get_file_info */
+ handle_table_destroy /* destroy */
};
/* dump a handle table */
@@ -127,7 +129,7 @@
struct handle_table *table;
if (count < MIN_HANDLE_ENTRIES) count = MIN_HANDLE_ENTRIES;
- if (!(table = alloc_object( &handle_table_ops )))
+ if (!(table = alloc_object( &handle_table_ops, -1 )))
return NULL;
table->process = process;
table->count = count;