Do you have a link to that? Googling king .net threads got me some strange
results 😁.

What made it particularly sane?

On Thu, 20 Jun 2019, 23:59 Michael Foord, <fuzzy...@gmail.com> wrote:

>
>
> On Thu, 20 Jun 2019 at 06:15, 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).
>
>
> Back in the day we used the .NET API for king threads from IronPython. It
> made threads so much saner to work with. It's been an egregious lack in the
> Python thread API for years and every time it's brought up people rush to
> say you shouldn't do it as what you really want to do is something else.
>
> Michael
>
>
>
>
>>
>> [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/
>>
> --
>
> Michael Foord
>
> Python Consultant, Contractor and Trainer
>
> https://agileabstractions.com/
>
> _______________________________________________
> 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/RFEQKOULKVUSDPGNLSEYIS24RBBMD6AS/
> 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/K52ICSTODQJSKFAJVWNMLQCSYU7G5VBU/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to