I am new to reactor pattern , i know that this pattern can solve the per client per thread problem in traditional block socket programming ,my question is that the virual function handle_input will be called by the event dispatcher to indicate that we can read now ,but is the program logic happens in such function .sometimes ,we need to send something back the the peer side by calling send for example ,but is this send function block or non block ,(as far as i know ,the socket is non block in async model)or how can i ensure it can send successfully ? then what's the difference between block plus thread and non block + reactor pattern in this case ,please help!!! many thanks.