[Python-ideas] Thread stopping
Andrew Svetlov
andrew.svetlov at gmail.com
Thu Mar 29 21:48:28 CEST 2012
More information about the Python-ideas mailing list
Thu Mar 29 21:48:28 CEST 2012
- Previous message: [Python-ideas] PEP x: Static module/package inspection
- Next message: [Python-ideas] Thread stopping
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I propose to add Thread.interrupt() function. th.interrupt() will set a flag in ThreadState structure. When interpreter switches to next thread it will check that flag. If flag is on then ThreadInterruptionError will be raised in thread context. If thread has blocked via threading locks (Lock, RLock, Condition, Semaphore etc) — exception is raised also. Of course we cannot interrupt thread if it has been locked by C Extension call or just waiting for blocking IO. But, I think, the way to force stopping of some thread can be useful and has no incompatibility effect. The standard way to stop thread is the sending some message which is the signal to thread for termination. Pushing None or sentinel into thread message queue for example. Other variants: — check 'interrupted' state explicitly by call threading.current_thread().interrupted() than do what you want. — do the same as boost.threading does: check state in direct interruption point and locks if interruption is enabled. BTW, we can disable interruption mechanic by default and use it only if switched on by threading.enable_interruption() What do you think? -- Thanks, Andrew Svetlov
- Previous message: [Python-ideas] PEP x: Static module/package inspection
- Next message: [Python-ideas] Thread stopping
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list