If you don't drain the pipe then poll sees the wakefds for the IRC manager as always containing data to process. This causes poll to never actually block when it needs to block causing redroid to process floods as a busy-wait. Draining the pipe and doing a blocking with timeout for the flood case is more efficent.