server: Make sure a thread doesn't get freed while it's processing a request.
This commit is contained in:
parent
39d54523a3
commit
5532927ed3
|
@ -248,9 +248,11 @@ static void thread_poll_event( struct fd *fd, int event )
|
|||
struct thread *thread = get_fd_user( fd );
|
||||
assert( thread->obj.ops == &thread_ops );
|
||||
|
||||
grab_object( thread );
|
||||
if (event & (POLLERR | POLLHUP)) kill_thread( thread, 0 );
|
||||
else if (event & POLLIN) read_request( thread );
|
||||
else if (event & POLLOUT) write_reply( thread );
|
||||
release_object( thread );
|
||||
}
|
||||
|
||||
/* cleanup everything that is no longer needed by a dead thread */
|
||||
|
|
Loading…
Reference in New Issue