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/