2010/12/31  <[email protected]>:
> 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 :(
>

No, only #ifNil: is a selector handled specially by Compiler.

Nicolas

Reply via email to