SYMBOL: break-hook
: break ( -- )
- continuation callstack >>call
+ current-continuation callstack >>call
break-hook get call( continuation -- continuation' )
after-break ;
\ (step-into-execute) t "step-into?" set-word-prop
: (step-into-continuation) ( -- )
- continuation callstack >>call break ;
+ current-continuation callstack >>call break ;
: (step-into-call-next-method) ( method -- )
next-method-quot (step-into-quot) ;
C: <continuation> continuation
-: continuation ( -- continuation )
+: current-continuation ( -- continuation )
datastack callstack retainstack namestack catchstack
<continuation> ;
PRIVATE>
: ifcc ( capture restore -- )
- [ dummy-1 continuation ] 2dip [ dummy-2 ] prepose ?if ; inline
+ [ dummy-1 current-continuation ] 2dip [ dummy-2 ] prepose ?if ; inline
: callcc0 ( quot -- ) [ drop ] ifcc ; inline
[
! 65 = self
OBJ-CURRENT-THREAD special-object error-thread set-global
- continuation error-continuation set-global
+ current-continuation error-continuation set-global
[ original-error set-global ] [ rethrow ] bi
] ERROR-HANDLER-QUOT set-special-object
! VM adds this to kernel errors, so that user-space
SLOT: continuation
: register-disposable ( obj -- )
- debug-leaks? get-global [ continuation >>continuation ] when
+ debug-leaks? get-global [ current-continuation >>continuation ] when
disposables get conjoin ;
: unregister-disposable ( obj -- )