From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id KAA21292; Tue, 26 Nov 2002 10:39:15 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id KAA21371 for ; Tue, 26 Nov 2002 10:39:14 +0100 (MET) Received: from mel-rto2.wanadoo.fr (smtp-out-2.wanadoo.fr [193.252.19.254]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id gAQ9dE109220; Tue, 26 Nov 2002 10:39:14 +0100 (MET) Received: from mel-rta6.wanadoo.fr (193.252.19.26) by mel-rto2.wanadoo.fr (6.5.007) id 3DDA11D80046F56B; Tue, 26 Nov 2002 10:39:14 +0100 Received: from iliana (80.14.205.45) by mel-rta6.wanadoo.fr (6.5.007) id 3DD8EC9700485B59; Tue, 26 Nov 2002 10:39:14 +0100 Received: from luther by iliana with local (Exim 3.36 #1 (Debian)) id 18GcBT-0001aC-00; Tue, 26 Nov 2002 10:39:11 +0100 Date: Tue, 26 Nov 2002 10:39:11 +0100 To: Xavier Leroy Cc: Sven Luther , Blair Zajac , caml-list@inria.fr Subject: Re: [Caml-list] Why systhreads? Message-ID: <20021126093911.GA6049@iliana> References: <20021123090806.GA633@la.iki.fi> <20021125110133.A12077@pauillac.inria.fr> <3DE2736D.F4FCC064@orcaware.com> <20021126100254.A19708@pauillac.inria.fr> <20021126092924.GA5383@iliana> <20021126103401.A11423@pauillac.inria.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021126103401.A11423@pauillac.inria.fr> User-Agent: Mutt/1.4i From: Sven Luther Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Tue, Nov 26, 2002 at 10:34:01AM +0100, Xavier Leroy wrote: > > In the case i have a multi-threaded lablgtk executable, having ine > > thread managing the interface and the other running programs, that even > > if i had a way of killing a thread (or setting a mutex or whatever to > > signal it to stop), that if the running thread is looping, i will never > > be able to execute the interface thread which will (trough a callback) > > set the mutex to the stop option, because the running thread doesn't do > > blocking IO ? > > That's a long question. Had to read it three times to see what you mean :-) Yes, sorry about that. > The answer to your question is that Caml systhreads do support > preemption: a timer forces the currently running thread to call > Thread.yield() at regular intervals. In turn, Thread.yield() > releases the master mutex, calls sched_yield(), and re-acquires the > master mutex, giving other threads a chance to grab the master mutex > and run. So it is not necessary to call Thread.yield() myself before the blocking code, right ? > > keeping the GUI alive even if some other stuff is taking time or looping > > forever is a nice application of threading support. > > Sure. But this is all taken care of. :))) Friendly, Sven Luther ------------------- 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