diff options
author | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 2000-03-29 01:57:25 +0000 |
---|---|---|
committer | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 2000-03-29 01:57:25 +0000 |
commit | 0e551780ec9fae468d44bb29470b3a16fd94b9ed (patch) | |
tree | 8e36b3d547749e33699b5c7d0c15090d58aa09e5 | |
parent | ad1a269029dc2cb201829e9886b5609a81334b48 (diff) | |
download | guile-0e551780ec9fae468d44bb29470b3a16fd94b9ed.tar.gz |
* coop-threads.c (scm_call_with_new_thread, scm_spawn_thread):
Changed SETCDR --> SET_CELL_WORD_1.
* coop-threads.c (scheme_launch_thread): Set word 1 of handle to 0
when thread dies.
-rw-r--r-- | libguile/coop-threads.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libguile/coop-threads.c b/libguile/coop-threads.c index 81f227ad5..f7f03a4f4 100644 --- a/libguile/coop-threads.c +++ b/libguile/coop-threads.c @@ -213,6 +213,7 @@ scheme_launch_thread (void *p) (scm_catch_handler_t) scheme_handler_bootstrip, &data, (SCM_STACKITEM *) &thread); + SCM_SET_CELL_WORD_1 (thread, 0); scm_thread_count--; SCM_DEFER_INTS; } @@ -268,7 +269,7 @@ scm_call_with_new_thread (SCM argl) argl variable may not exist in memory when the thread starts. */ t = coop_create (scheme_launch_thread, (void *) argl); t->data = SCM_ROOT_STATE (root); - SCM_SETCDR (thread, t); + SCM_SET_CELL_WORD_1 (thread, t); scm_thread_count++; /* Note that the following statement also could cause coop_yield.*/ SCM_ALLOW_INTS; @@ -359,7 +360,7 @@ scm_spawn_thread (scm_catch_body_t body, void *body_data, t = coop_create (c_launch_thread, (void *) data); t->data = SCM_ROOT_STATE (root); - SCM_SETCDR (thread, t); + SCM_SET_CELL_WORD_1 (thread, t); scm_thread_count++; /* Note that the following statement also could cause coop_yield.*/ SCM_ALLOW_INTS; |