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