Skip to content
  1. Oct 09, 2017
  2. Oct 08, 2017
  3. Oct 06, 2017
  4. Oct 05, 2017
  5. Oct 03, 2017
  6. Oct 02, 2017
  7. Sep 30, 2017
  8. Sep 29, 2017
  9. Sep 28, 2017
  10. Sep 27, 2017
  11. Sep 25, 2017
  12. Sep 24, 2017
  13. Sep 23, 2017
  14. Sep 22, 2017
    • Yann Ylavic's avatar
      Merge r1802875 from trunk: · d688a489
      Yann Ylavic authored
      event: Avoid possible blocking in the listener thread when shutting down
      connections. PR 60956.
      
      start_lingering_close_nonblocking() now puts connections in defer_linger_chain
      which is emptied by any worker thread (all atomically) after its usual work,
      hence any possibly blocking flush and lingering close run outside the listener.
      
      The listener may create a dedicated worker if it fills defer_linger_chain or
      while it's not empty, calling push2worker with a NULL cs.
      
      The state machine in process_socket() is slighly modified to be able to enter
      with CONN_STATE_LINGER directly w/o clogging_input_filters to interfer.
      
      New abort_socket_nonblocking() allows to reset connections when nonblocking is
      required and we can't do much about the connection anymore, nor we want the
      system to linger on its own after close().
      
      Many thanks to Stefan Priebe for his heavy testing on many event's changes!
      
      
      Submitted by: ylavic
      Reviewed by: ylavic, jim, icing
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1809299 13f79535-47bb-0310-9956-ffa450edef68
      d688a489