PatchSet 4813
Date: 2004/06/03 18:45:58
Author: guilhem
Branch: HEAD
Tag: (none)
Log:
Fixed two bugs in jthreads.
* kaffe/kaffevm/systems/unix-jthreads/jthread.c
(jthread_stop): THREAD_FLAGS_DONTSTOP should 0 to be able to call
die().
(jcondvar_broadcast): Fixed list chaining for condition variables.
Reported by dai shaowei <[EMAIL PROTECTED]>.
Members:
ChangeLog:1.2381->1.2382
kaffe/kaffevm/systems/unix-jthreads/jthread.c:1.114->1.115
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.2381 kaffe/ChangeLog:1.2382
--- kaffe/ChangeLog:1.2381 Thu Jun 3 16:21:24 2004
+++ kaffe/ChangeLog Thu Jun 3 18:45:58 2004
@@ -1,3 +1,13 @@
+2004-06-04 Guilhem Lavaux <[EMAIL PROTECTED]>,
+ dai shaowei <[EMAIL PROTECTED]>
+
+ * kaffe/kaffevm/systems/unix-jthreads/jthread.c
+ (jthread_stop): THREAD_FLAGS_DONTSTOP should 0 to be able to call
+ die().
+ (jcondvar_broadcast): Fixed list chaining for condition variables.
+
+ Reported by dai shaowei <[EMAIL PROTECTED]>.
+
2004-06-03 Dalibor Topic <[EMAIL PROTECTED]>
* m4/acx_pthread.m4:
Index: kaffe/kaffe/kaffevm/systems/unix-jthreads/jthread.c
diff -u kaffe/kaffe/kaffevm/systems/unix-jthreads/jthread.c:1.114
kaffe/kaffe/kaffevm/systems/unix-jthreads/jthread.c:1.115
--- kaffe/kaffe/kaffevm/systems/unix-jthreads/jthread.c:1.114 Sat May 29 17:01:18
2004
+++ kaffe/kaffe/kaffevm/systems/unix-jthreads/jthread.c Thu Jun 3 18:45:57 2004
@@ -1831,15 +1831,18 @@
intsDisable();
/* No reason to hit a dead man over the head */
if (jtid->status != THREAD_DEAD) {
- jtid->flags |= THREAD_FLAGS_KILLED;
+ jtid->flags |= THREAD_FLAGS_KILLED;
}
/* if it's us, die */
- if (jtid == jthread_current() &&
- (jtid->flags & THREAD_FLAGS_DONTSTOP) != 0 && blockInts == 1)
- die();
+ if (jtid == jthread_current()
+ && (jtid->flags & THREAD_FLAGS_DONTSTOP) == 0 && blockInts == 1)
+ die();
+
+ /* We only have to resume the thread if it is not us. */
+ if (jtid != jthread_current())
+ resumeThread(jtid);
- resumeThread(jtid);
intsRestore();
}
@@ -2403,8 +2406,8 @@
for (condp = cv; *condp != 0; condp = &(*condp)->next)
;
(*condp) = lock->waiting;
- lock->waiting = *condp;
- *condp = NULL;
+ lock->waiting = *cv;
+ *cv = NULL;
}
intsRestore();
}
_______________________________________________
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe