• Michael Hanselmann's avatar
    Rewrite job queue · 85f03e0d
    Michael Hanselmann authored
    We found several issues in the old job queue implementation. It had race
    conditions, deadlocks and other deficiencies.
    
    Short summary:
    - _QueuedOpCode and _QueuedJob are now more or less data structures with a few
      utility functions. __Setup is gone.
    - DiskJobStorage and JobQueue classes merged into one to reduce code complexity.
    - One lock in JobQueue for almost everything. There's also a lock per opcode
      for log messages.
    
    Reviewed-by: iustinp
    85f03e0d
jqueue.py 17.1 KB