kaffe 0.8.3: Bug in kaffe/kaffevm/classMethod.c
Frank Mehnert
Frank.Mehnert at mchp.siemens.de
Fri Apr 4 04:37:31 PST 1997
Hi,
big sorry for my previos mail of this subject, please ignore it. There is
an error in fact on that place but I don't know how to solve it:
The meaning of the lines
489 if (class->state == CSTATE_DOING_LINK) {
490 while (class->state == CSTATE_DOING_LINK) {
491 suspendThread(currentThread);
492 }
493 return;
494 }
495 /* Signal that we are linking */
496 class->state = CSTATE_DOING_LINK;
is: If another thread is linking the class 'class' then the current
thread should yield itself to another thread. But the function yield
lets preempt the current thread only if another thread(s) exist(s) with
the same priority as the current thread (see kaffe/kaffevm/thread.c).
So what we need is a function call which yields the current thread as
unconditional (otherwise we get an endless loop).
Greetings,
Frank
Frank Mehnert
email: Frank.Mehnert at mchp.siemens.de
More information about the kaffe
mailing list