IME in many of these cases you're better off using asyncio instead.

-- Ryan
https://refi64.com/
On Jun 20, 2019, 12:14 AM -0500, Matúš Valo <matusv...@gmail.com>, wrote:
> Hi All,
>
> Currently it is not possible to "kill" thread which is blocked. The rationale 
> for this is handling situations when thread is blocked - e.g. when thread is 
> quering DB when lock occurred on Database. In this case, the main thread has 
> no way how to stop the blocked thread. Killing a thread is also popular 
> question - see [1][2].
>
> pthread library and Windows API contains mechanisms for forced termination of 
> threads - see [3] and [4]. It is also simple to use them using ctypes library 
> but after this action one need to "clean" internal data structures which is 
> bad practice:
>
> import time
> import threading
> import ctypes
>
> def handler():
> # blocked thread handler
> time.sleep(1000)
>
> t = threading.Thread(name='bar', target=handler)
> libpt = ctypes.cdll.LoadLibrary("libpthread.so.0")
>
> t.start()
> libpt.pthread_cancel(ctypes.c_ulong(t.ident))
> # This is nasty cleaning of internal python structures
> del threading._active[t.ident]
>
>
> Is if feasible to add canceling threads to python threading library? I am 
> willing to help creating a patch (at least for linux).
>
> [1] 
> https://stackoverflow.com/questions/323972/is-there-any-way-to-kill-a-thread
> [2] https://www.geeksforgeeks.org/python-different-ways-to-kill-a-thread/
> [3] http://man7.org/linux/man-pages/man3/pthread_cancel.3.html
> [4] 
> https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-terminatethread
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at 
> https://mail.python.org/archives/list/python-ideas@python.org/message/ZDERRWIBX7JP5F2VRTTGD4OMCUSMH3QB/
> Code of Conduct: http://python.org/psf/codeofconduct/
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/BP6W3QQ4NCBOTVDKLXUTXAID2B6LAHM7/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to