Skip to content
  • JINMEI Tatuya's avatar
    [2903] catch some errors from asio methods/functions explicitly · 11d85068
    JINMEI Tatuya authored
    otherwise it would result in an uncatchable exception and force the
    program to terminate.  some exceptions are still considered super rare
    and fatal, and they are still propagated (mainly from the io_service
    and deadline timer).  errors on close() are just ignored (there
    wouldn't be much we can do to recover in this case anyway).
    
    Further, changed the handling of errors on the result of async_accept():
    instead of stop accepting on some errors, log them and keep accepting
    new connections.  on a closer look at the code I believe that's more
    appropriate; silent stop would be rather confusing (if the error were
    really fatal we should rather invoke an exception and trigger termination),
    and cases like EMFILE definitely shouldn't cause this situation.
    errors that can caused by stop() should still result in stopping accept(),
    and the new code behaves that way.
    11d85068