diff options
-rw-r--r-- | protocols/events_libevent.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/protocols/events_libevent.c b/protocols/events_libevent.c index 429ca821..67f973b9 100644 --- a/protocols/events_libevent.c +++ b/protocols/events_libevent.c @@ -228,9 +228,14 @@ void closesocket( int fd ) get a little bit messed up. So this little function will remove the handlers properly before closing a socket. */ - if( ( b_ev = g_hash_table_lookup( read_hash, &fd ) ) || ( b_ev = g_hash_table_lookup( write_hash, &fd ) ) ) + if( b_ev = g_hash_table_lookup( read_hash, &fd ) ) { - event_debug( "Warning: Had to clean up some event handlers before closing fd %d.\n", fd ); + event_debug( "Warning: fd %d still had a read event handler when shutting down.\n", fd ); + b_event_remove( b_ev->id ); + } + if( b_ev = g_hash_table_lookup( write_hash, &fd ) ) + { + event_debug( "Warning: fd %d still had a write event handler when shutting down.\n", fd ); b_event_remove( b_ev->id ); } |