Threading functions
Prepared for asynchronous thinking
Prepared for asynchronous thinking II
Thinking takes place in its own thread
Windows compatibility fixes