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/device.c b/server/device.c
index b9f488e..b2c038e 100644
--- a/server/device.c
+++ b/server/device.c
@@ -34,23 +34,25 @@
static const struct object_ops device_ops =
{
- sizeof(struct device),
- device_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,
- device_get_info,
- no_destroy
+ sizeof(struct device), /* size */
+ device_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 */
+ device_get_info, /* get_file_info */
+ no_destroy /* destroy */
};
static struct device *create_device( int id )
{
struct device *dev;
- if ((dev = alloc_object( &device_ops )))
+ if ((dev = alloc_object( &device_ops, -1 )))
{
dev->id = id;
}