Updates:
        Cc: marcus.denker

Comment #4 on issue 3498 by marianopeck: remove:ifAbsent: in linked list leads to interruption/sync problems
http://code.google.com/p/pharo/issues/detail?id=3498

Stef, I am not Adrian, but yes, I think that can be the reasons. Just take the example of Andreas. When you do foo == nil, when that's compiled, it put a special bytcode for the == primitive (no method is send). It seems the scheduler can change processes during method sends. In most clases, this may not be a problem. But if you cahnge foo == nil, by foo isNil, it may be a point where it can be preempted. And maybe there are places where this cannot happen, probably the place where the the processes are managed or the code needed for that, like Andras said, process, delay, semaphore, etc.

What I don't understand is that I thought that the compiler replaces foo isNil by foo == nil. And if this is the case, then what has been explained doesn't make sense :(




Reply via email to