forked from rfk/threading2
-
Notifications
You must be signed in to change notification settings - Fork 0
like the standard threading module, but awesomer
License
tlynn/threading2
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
threading2: like the standard threading module, but awesomer.
This module is designed as a drop-in replacement and extension for the default
"threading" module. It has two main objectives:
* implement primitives using native platform functionality where possible
* expose more sophisticated functionality where it can be done uniformly
The following extensions are currently implemented:
* ability to set (advisory) thread priority
* ability to set (advisory) CPU affinity at thread and process level
* thread groups for simultaneous management of multiple threads
* SHLock class for shared/exclusive (also known as read/write) locks
The following API niceties are also included:
* all blocking methods take a "timeout" argument and return a success code
* all exposed objects are actual classes and can be safely subclassed
This has currently only been tested on WinXP and Ubuntu Karmic; similar
platforms *should* work OK, and other platforms *should* fall back to using
sensible default behaviour, but I'm not making any guarantees at this stage.
Additional planned extensions include:
* make stack_size a kwarg when creating a thread
* native events, semaphores and timed waits on win32
* native conditions and timed waits on pthreads platforms
* native SHLock implementations (SRW on Win Vista+, pthread_rwlock)
About
like the standard threading module, but awesomer
Resources
License
Stars
Watchers
Forks
Languages
- Python 100.0%