This document is our own "Request for Comments". We list ideas here on how to
improve ThreadWeaver and discuss them. You can also vote on them by adding or
removing a star in front of the text after the bullet like this: 
- *** job priorities
=============================>--------------------<==========================

Generic items on job handling:
------------------------------
- (DONE in 0.5) JobSequence objects (a queue of Jobs that will be executed in order,
  automatically sets up deps)
- (DONE in 0.5) virtual aboutToBeQueued method for jobs (allows jobs to queue subjobs
  before themselves)
- (DONE in 0.6) (implemented in Experimental/FailableJob) cancellation of dependent jobs if a dependency raises an error
  (all-or-nothing)
- (DONE in 0.6) job priorities (with Queue merge performed at queueing time)
  (planned for 0.7)
- (DONE as resource restrictions, 0.6) job categories (can currently
  be done by using different Weaver objects)  
  (planned for 0.6)

Items to provide performance improvements:
------------------------------------------
- thread scheduling priorities on the OS scheduler level (may actually not
  work on Linux, has to be researched first)

GUI elements: 
-------------
- GUI dependent Weaver implementation along with GUI dependent Job classes
  with automatic feedback on Job processing progress
  (probably needs it's own library, to keep the library dependencies local,
  e.g. ThreadWeaver only relies on QtCore, ThreadWeaverGUI relies on QtCore +
  QtGui)

