summaryrefslogtreecommitdiff
path: root/lib/git/async/thread.py
Commit message (Collapse)AuthorAgeFilesLines
* thread: fixed initialization problem if an empty iterable was handed inSebastian Thiel2010-06-091-2/+6
| | | | | queue: Queue now derives from deque directly, which safes one dict lookup as the queue does not need to be accessed through self anymore pool test improved to better verify threads are started correctly
* queue: fixed critical bug in the notify method, as it was not at all ↵Sebastian Thiel2010-06-091-3/+6
| | | | | | thread-safe, causing locks to be released multiple times. Now it runs very fast, and very stable apparently. Now its about putting previous features back in, and studying their results, before more complex task graphs can be examined
* workerthread: adjusted to use a blocking queue, it will receive termination ↵Sebastian Thiel2010-06-081-7/+17
| | | | events only with its queue, with boosts performance into brigt green levels
* Its getting better already - intermediate commit before further chaning the ↵Sebastian Thiel2010-06-081-1/+2
| | | | task class
* Moved pool utilities into util module, fixed critical issue that caused ↵Sebastian Thiel2010-06-071-7/+9
| | | | havok - lets call this a safe-state
* added high-speed locking facilities, allowing our Queue to be faster, at ↵Sebastian Thiel2010-06-071-3/+0
| | | | least in tests, and with multiple threads. There is still an sync bug in regard to closed channels to be fixed, as the Task.set_done handling is incorrecft
* Added task order cache, and a lock to prevent us walking the graph while ↵Sebastian Thiel2010-06-071-1/+2
| | | | | | changing tasks Now processing more items to test performance, in dual-threaded mode as well, and its rather bad, have to figure out the reason for this, probably gil, but queues could help
* pool.consumed_tasks: is now a queue to be thread safe, in preparation for ↵Sebastian Thiel2010-06-071-0/+5
| | | | | | multiple connected pools Reduced waiting time in tests to make them complete faster
* pool: First version which works as expected in async mode. Its just using a ↵Sebastian Thiel2010-06-071-34/+9
| | | | single task for now, but next up are dependent tasks
* First step of testing the pool - tasks have been separated into a new module ↵Sebastian Thiel2010-06-061-2/+7
| | | | including own tests, their design improved to prepare them for some specifics that would be needed for multiprocessing support
* thread: adjusted worker thread not to provide an output queue anymore - this ↵Sebastian Thiel2010-06-061-22/+5
| | | | | | | is handled by the task system graph: implemented it including test according to the pools requirements pool: implemented set_pool_size
* Renamed mp to async, as this is a much better name for what is actually ↵Sebastian Thiel2010-06-051-0/+203
going on. The default implementation uses threads, which ends up being nothing more than async, as they are all locked down by internal and the global interpreter lock