16. Optional Operating System Services ************************************** The modules described in this chapter provide interfaces to operating system features that are available on selected operating systems only. The interfaces are generally modeled after the Unix or C interfaces but they are available on some other systems as well (e.g. Windows or NT). Here’s an overview: * 16.1. "select" — Waiting for I/O completion * 16.1.1. Edge and Level Trigger Polling (epoll) Objects * 16.1.2. Polling Objects * 16.1.3. Kqueue Objects * 16.1.4. Kevent Objects * 16.2. "threading" — Higher-level threading interface * 16.2.1. Thread Objects * 16.2.2. Lock Objects * 16.2.3. RLock Objects * 16.2.4. Condition Objects * 16.2.5. Semaphore Objects * 16.2.5.1. "Semaphore" Example * 16.2.6. Event Objects * 16.2.7. Timer Objects * 16.2.8. Using locks, conditions, and semaphores in the "with" statement * 16.2.9. Importing in threaded code * 16.3. "thread" — Multiple threads of control * 16.4. "dummy_threading" — Drop-in replacement for the "threading" module * 16.5. "dummy_thread" — Drop-in replacement for the "thread" module * 16.6. "multiprocessing" — Process-based “threading” interface * 16.6.1. Introduction * 16.6.1.1. The "Process" class * 16.6.1.2. Exchanging objects between processes * 16.6.1.3. Synchronization between processes * 16.6.1.4. Sharing state between processes * 16.6.1.5. Using a pool of workers * 16.6.2. Reference * 16.6.2.1. "Process" and exceptions * 16.6.2.2. Pipes and Queues * 16.6.2.3. Miscellaneous * 16.6.2.4. Connection Objects * 16.6.2.5. Synchronization primitives * 16.6.2.6. Shared "ctypes" Objects * 16.6.2.6.1. The "multiprocessing.sharedctypes" module * 16.6.2.7. Managers * 16.6.2.7.1. Customized managers * 16.6.2.7.2. Using a remote manager * 16.6.2.8. Proxy Objects * 16.6.2.8.1. Cleanup * 16.6.2.9. Process Pools * 16.6.2.10. Listeners and Clients * 16.6.2.10.1. Address Formats * 16.6.2.11. Authentication keys * 16.6.2.12. Logging * 16.6.2.13. The "multiprocessing.dummy" module * 16.6.3. Programming guidelines * 16.6.3.1. All platforms * 16.6.3.2. Windows * 16.6.4. Examples * 16.7. "mmap" — Memory-mapped file support * 16.8. "readline" — GNU readline interface * 16.8.1. Init file * 16.8.2. Line buffer * 16.8.3. History file * 16.8.4. History list * 16.8.5. Startup hooks * 16.8.6. Completion * 16.8.7. Example * 16.9. "rlcompleter" — Completion function for GNU readline * 16.9.1. Completer Objects