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

_______________________________________________
help-smalltalk mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to