Lock callbacks in memory
parent
b5039442ab
commit
c8ca1997a0
|
@ -1,7 +1,6 @@
|
||||||
- live search: timer delay would be nice
|
- live search: timer delay would be nice
|
||||||
- help responder has no way to access { "foo" "bar" }
|
- help responder has no way to access { "foo" "bar" }
|
||||||
- httpd search tools
|
- httpd search tools
|
||||||
- lock callbacks
|
|
||||||
|
|
||||||
+ ui:
|
+ ui:
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,14 @@ IN: alien
|
||||||
USING: compiler errors generic hashtables inference
|
USING: compiler errors generic hashtables inference
|
||||||
kernel namespaces sequences strings words parser prettyprint ;
|
kernel namespaces sequences strings words parser prettyprint ;
|
||||||
|
|
||||||
|
! Callbacks are registered in a global hashtable. If you clear
|
||||||
|
! this hashtable, they will all be blown away by code GC, beware
|
||||||
|
SYMBOL: callbacks
|
||||||
|
|
||||||
|
H{ } clone callbacks set-global
|
||||||
|
|
||||||
|
: register-callback ( word -- ) dup callbacks get set-hash ;
|
||||||
|
|
||||||
TUPLE: alien-callback return parameters quot xt ;
|
TUPLE: alien-callback return parameters quot xt ;
|
||||||
C: alien-callback make-node ;
|
C: alien-callback make-node ;
|
||||||
|
|
||||||
|
@ -26,7 +34,7 @@ M: alien-callback-error summary
|
||||||
pop-literal nip over set-alien-callback-quot
|
pop-literal nip over set-alien-callback-quot
|
||||||
pop-literal nip over set-alien-callback-parameters
|
pop-literal nip over set-alien-callback-parameters
|
||||||
pop-literal nip over set-alien-callback-return
|
pop-literal nip over set-alien-callback-return
|
||||||
gensym over set-alien-callback-xt
|
gensym dup register-callback over set-alien-callback-xt
|
||||||
callback-bottom
|
callback-bottom
|
||||||
] "infer" set-word-prop
|
] "infer" set-word-prop
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue