Revert "with a threaded guile, lock weak sets and tables during a fork"
[bpt/guile.git] / libguile / continuations.h
index a15a0fd..e0a4556 100644 (file)
@@ -44,7 +44,6 @@
 
 typedef struct 
 {
-  SCM throw_value;
   scm_i_jmp_buf jmpbuf;
   SCM dynenv;
 #ifdef __ia64__
@@ -53,7 +52,8 @@ typedef struct
 #endif /* __ia64__ */
   size_t num_stack_items;   /* size of the saved stack.  */
   SCM root;                 /* continuation root identifier.  */
-  SCM vm_conts;             /* vm continuations (they use separate stacks) */
+  SCM vm;                   /* vm */
+  SCM vm_cont;              /* vm's stack and regs */
 
   /* The offset from the live stack location to this copy.  This is
      used to adjust pointers from within the copied stack to the stack
@@ -71,9 +71,15 @@ typedef struct
 
 \f
 
-SCM_API SCM scm_make_continuation (int *first);
+SCM_INTERNAL SCM scm_i_make_continuation (int *first, SCM vm, SCM vm_cont);
+SCM_INTERNAL void scm_i_check_continuation (SCM cont);
+SCM_INTERNAL void scm_i_reinstate_continuation (SCM cont);
+
+SCM_INTERNAL SCM scm_i_call_with_current_continuation (SCM proc);
+
 SCM_INTERNAL SCM scm_i_continuation_to_frame (SCM cont);
-SCM_INTERNAL void scm_i_continuation_call (SCM cont, size_t n, SCM *argv);
+SCM_INTERNAL SCM scm_i_contregs_vm (SCM contregs);
+SCM_INTERNAL SCM scm_i_contregs_vm_cont (SCM contregs);
 
 SCM_API void *scm_c_with_continuation_barrier (void *(*func)(void*), void *);
 SCM_API SCM scm_with_continuation_barrier (SCM proc);