Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Native Threads
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Xavier Leroy <xavier.leroy@i...>
Subject: Re: [Caml-list] Native Threads
> I've just been playing with threads and I noticed at execution
> time that Thread.kill is not implemented by the posix-compiled
> version of the library. I used this flag because I thought that
> it would be faster (please correct me if I'm wrong), and there
> was no mention that Thread.kill would not be implemented.
> By looking at the sources, I learned that the reason is
> "problems with cleanup handlers on several platforms".
> That's fine with me, but I would like to compile my
> program :)

The documentation should definitely be updated to mention that
Thread.kill is not only unavailable with system threads, but also
deprecated and definitely not advised.  

Being able to terminate any thread at any time, without cooperation
from the thread, is extremely dangerous: what if the killed thread was
holding mutexes?  (I think this has been discussed recently on this
list.)  For this reason, thread APIs either provide a low-level "kill"
operation and strongly adivse not to use it (Win32, Java), or they
provide a more controlled "cancellation" mechanism (POSIX) that is
slightly less risky, but doesn't (currently) map well to Caml threads.

So: don't kill threads.  Let them live a long and happy life :-)

- Xavier Leroy
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners