kaffe 0.8.3: Bug in kaffe/kaffevm/classMethod.c

Bernie Solomon bernard at UG.EDS.COM
Wed Apr 9 11:06:29 PDT 1997


Gregor Hoffleit wrote:
> 
> Hmm, as I wrote lately, there were severe threading problems introduced with 0.8.3 for Nextstep. All but the simplest programs loop endlessly in checkEvents(). Happens for all tested Nextstep architectures, therefore it's not dependent on the arch specific threading code.
> 
> I tried to track down the problem, but could not see any significant changes to kaffevm/thread.c since 0.8.2. The symptom is that checkEvent's select call never returns here. This happens e.g. with test/threads/T16. Nevertheless it works for some other examples, e.g. threads/T3.
> 
> I have no idea what I should look for.

I have reproduced this myself. I have also discovered that putting back
setting the thread state to DEAD in killThread:

		if (TCTX(currentThread)->status == THREAD_RUNNING) {
			for (ntid = &threadQhead[TCTX(currentThread)->priority]; *ntid != 0;
ntid = &(*ntid)->next) {
				if (*ntid == currentThread) {
					*ntid = currentThread->next;
					break;
				}
			}
		}

>>>>>>		TCTX(currentThread)->status = THREAD_DEAD;
		talive--;
		if (currentThread->daemon) {
			tdaemon--;
		}

means that it works again in 0.8.3. The question to which I don't know
the answer is why it was removed?
-- 
Bernie Solomon (bernard at edsug.com or Bernard.Solomon at acm.org)
Unigraphics Architecture, EDS-Unigraphics, Cambridge, UK



More information about the kaffe mailing list