[D-runtime] A mechanism to kill threads
Steven Schveighoffer
schveiguy at yahoo.com
Thu Aug 23 05:28:46 PDT 2012
I realize this thread is very old, but I'm just catching up with my stale email.
Not sure whether anything happened with this, but I would suggest that you simply avoid using D threads whatsoever. I'd even write the VM in C. Otherwise, you risk hidden D features that you have no control over that might use the GC. Like simply using an array literal.
In my experience, it's always been possible (and better) to write a cooperative way to kill a thread. Then again, I haven't ever written a VM...
-Steve
On May 16, 2012, at 8:55 PM, Alex Rønne Petersen wrote:
> One interesting question in designing a kill function is: Do we want
> to guarantee that it runs all the thread shutdown routines (see the
> shutdown code in thread_entryPoint)? I'm thinking that guaranteeing
> this is basically impossible, so I'm leaning towards no. The most I
> can see would be realistic is to remove the thread from the global
> thread list if enqueueing the termination request (pthread_cancel on
> POSIX, TerminateThread on Windows) succeeded.
>
> If we don't guarantee this, how much resource leakage are we looking at?
>
> Regards,
> Alex
>
> On Wed, May 16, 2012 at 7:04 PM, Alex Rønne Petersen
> <xtzgzorex at gmail.com> wrote:
>> Hi,
>>
>> In my virtual machine, I need to be able to kill daemon threads on
>> shutdown. The problem is that VM shutdown is *not* tightly coupled to
>> druntime shutdown; multiple VM instances can run in a process at any
>> given time, and can be started/stopped whenever. It doesn't appear
>> like there is any functionality in core.thread to achieve this.
>>
>> Is there any reason we don't have a Thread.kill() function?
>>
>> Regards,
>> Alex
> _______________________________________________
> D-runtime mailing list
> D-runtime at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/d-runtime
More information about the D-runtime
mailing list