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/trace.c b/server/trace.c
index 0e436f2..c9643e9 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -1341,22 +1341,22 @@
     fprintf( stderr, "%08x: *timeout*\n", (unsigned int)current );
 }
 
-void trace_kill( int exit_code )
+void trace_kill( struct thread *thread )
 {
     fprintf( stderr,"%08x: *killed* exit_code=%d\n",
-             (unsigned int)current, exit_code );
+             (unsigned int)thread, thread->exit_code );
 }
 
-void trace_reply( struct thread *thread, unsigned int res, int pass_fd )
+void trace_reply( struct thread *thread )
 {
     fprintf( stderr, "%08x: %s() = %d",
-             (unsigned int)thread, req_names[thread->last_req], res );
+             (unsigned int)thread, req_names[thread->last_req], thread->error );
     if (reply_dumpers[thread->last_req])
     {
         fprintf( stderr, " {" );
         reply_dumpers[thread->last_req]( thread->buffer );
 	fprintf( stderr, " }" );
     }
-    if (pass_fd != -1) fprintf( stderr, " fd=%d\n", pass_fd );
+    if (thread->pass_fd != -1) fprintf( stderr, " fd=%d\n", thread->pass_fd );
     else fprintf( stderr, "\n" );
 }