mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15:05 +02:00
WIP
This commit is contained in:
parent
6ae7a88e53
commit
1f21b4688a
1 changed files with 8 additions and 1 deletions
9
gc.c
9
gc.c
|
@ -1172,7 +1172,14 @@ printf("DEBUG - is mutator still blocked?\n");
|
||||||
// Check again, if thread is still blocked we need to cooperate
|
// Check again, if thread is still blocked we need to cooperate
|
||||||
if (ATOMIC_SET_IF_EQ(&(m->thread_state),
|
if (ATOMIC_SET_IF_EQ(&(m->thread_state),
|
||||||
CYC_THREAD_STATE_BLOCKED,
|
CYC_THREAD_STATE_BLOCKED,
|
||||||
CYC_THREAD_STATE_BLOCKED_COOPERATING)) {
|
CYC_THREAD_STATE_BLOCKED_COOPERATING)
|
||||||
|
// TODO: seems to work OK for first collection, but then gc is blocked
|
||||||
|
// again. tried this but there must be another issue...
|
||||||
|
// ||
|
||||||
|
// ATOMIC_SET_IF_EQ(&(m->thread_state),
|
||||||
|
// CYC_THREAD_STATE_BLOCKED_COOPERATING,
|
||||||
|
// CYC_THREAD_STATE_BLOCKED_COOPERATING)
|
||||||
|
) {
|
||||||
printf("DEBUG - update mutator GC status\n");
|
printf("DEBUG - update mutator GC status\n");
|
||||||
ATOMIC_SET_IF_EQ(&(m->gc_status), statusm, statusc);
|
ATOMIC_SET_IF_EQ(&(m->gc_status), statusm, statusc);
|
||||||
pthread_mutex_lock(&(m->lock));
|
pthread_mutex_lock(&(m->lock));
|
||||||
|
|
Loading…
Add table
Reference in a new issue