• Bryton Lacquement's avatar
    Add WSGI support · d0310869
    Bryton Lacquement authored
    This first work on WSGI is only to stop using ZServer (Medusa),
    which is a required step before moving to Zope 4. This means that
    Zope should behave almost exactly the same way as before, notably:
    
    - We don't take advantage yet of what WSGI offers, like IPv6.
    - There's extra code to handle errors the same way as before
      (this is something we'll have to change for Zope 4).
    
    The most significant change in behaviour is that the chosen WSGI server
    (waitress) does some of the HTTP work in worker threads (Medusa does it
    entirely in the IO thread), and the biggest consequence concerns the
    deadlock debugger that is now run from the worker thread:
    - it does not work if all threads are blocked
    - doing better would require to patch waitress in a quite ugly way
    
    About TimerService, we simplify things by removing the egg.
    In zope.conf, it's possible to import from the product.
    
    /reviewed-on nexedi/erp5!883
    d0310869
ERP5TypeTestCase.py 57.6 KB