|
From: | Paolo Bonzini |
Subject: | Re: [Help-smalltalk] Re: Starting Iliad without gst-remote |
Date: | Wed, 18 Aug 2010 10:10:15 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.10) Gecko/20100621 Fedora/3.0.5-1.fc13 Lightning/1.0b2pre Mnenhy/0.8.3 Thunderbird/3.0.5 |
On 08/18/2010 10:02 AM, Holger Hans Peter Freyther wrote:
On 08/18/2010 03:56 PM, Paolo Bonzini wrote:Also, the VM _is_ preemptive, despite the ill-named --enable-preemptive. Semaphores (which include Delay timeouts and I/O events) can and will preempt the running process. It is just that the VM will not preempt a process just because it's been running for some time; that is, the VM is not time-sharing.Well, it really depends on your definition of pre-emption. Calling a primitive to trigger a context is something that I understand as cooperation... :)
No, you don't need to call a primitive. A process sitting on "aSocket next" will preempt other processes when data becomes available. Similarly for Delays.
Non-preemptive means basically "you can be sloppy about locks" as long as there are no yields in a critical section. This is definitely not the case in any Smalltalk.
Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |