cs: speed up break-enabled slightly

This commit is contained in:
Matthew Flatt 2019-02-04 06:23:15 -08:00
parent b1bdcacabc
commit 61ca9ef474
6 changed files with 12 additions and 11 deletions

View File

@ -34,5 +34,6 @@
[fork-place (known-procedure 1)]
[start-place (known-procedure 32)]
[make-pthread-parameter (known-procedure 2)]
[break-enabled-key (known-constant)]
[fasl->s-exp/intern (known-procedure 2)])

View File

@ -30,7 +30,6 @@
[get-initial-pthread rumble:get-initial-pthread]
[current-place-roots rumble:current-place-roots]
[set-ctl-c-handler! rumble:set-ctl-c-handler!]
[unsafe-root-continuation-prompt-tag rumble:unsafe-root-continuation-prompt-tag]
[set-break-enabled-transition-hook! rumble:set-break-enabled-transition-hook!]
[set-reachable-size-increments-callback! rumble:set-reachable-size-increments-callback!]
[set-custodian-memory-use-proc! rumble:set-custodian-memory-use-proc!]
@ -104,6 +103,8 @@
;; "primitives/internal.ss".
(hasheq
'make-pthread-parameter make-pthread-parameter
'unsafe-root-continuation-prompt-tag unsafe-root-continuation-prompt-tag
'break-enabled-key break-enabled-key
;; These are actually redirected by "place-register.ss", but
;; we list them here for compatibility with the bootstrapping
;; variant of `#%pthread`
@ -118,14 +119,12 @@
'engine-return rumble:engine-return
'current-engine-state (lambda (v) (rumble:current-engine-state v))
'set-ctl-c-handler! rumble:set-ctl-c-handler!
'root-continuation-prompt-tag rumble:unsafe-root-continuation-prompt-tag
'poll-will-executors poll-will-executors
'make-will-executor rumble:make-will-executor
'make-stubborn-will-executor rumble:make-stubborn-will-executor
'will-executor? rumble:will-executor?
'will-register rumble:will-register
'will-try-execute rumble:will-try-execute
'break-enabled-key break-enabled-key
'set-break-enabled-transition-hook! rumble:set-break-enabled-transition-hook!
'continuation-marks rumble:continuation-marks
'set-reachable-size-increments-callback! rumble:set-reachable-size-increments-callback!

View File

@ -63,4 +63,5 @@
#%app
#%call-with-values
make-pthread-parameter
break-enabled-key
fasl->s-exp/intern))))

View File

@ -100,7 +100,7 @@
(set! ctl-c-handler proc))
(define the-root-continuation-prompt-tag (make-continuation-prompt-tag 'root))
(define (root-continuation-prompt-tag) the-root-continuation-prompt-tag)
(define (unsafe-root-continuation-prompt-tag) the-root-continuation-prompt-tag)
(define break-enabled-key (gensym 'break-enabled))
(struct will-executor/notify (we queue notify))
@ -221,7 +221,9 @@
'unsafe-make-place-local unsafe-make-place-local
'unsafe-place-local-ref unsafe-place-local-ref
'unsafe-place-local-set! unsafe-place-local-set!
'unsafe-add-global-finalizer (lambda (v proc) (void))))
'unsafe-add-global-finalizer (lambda (v proc) (void))
'unsafe-root-continuation-prompt-tag unsafe-root-continuation-prompt-tag
'break-enabled-key break-enabled-key))
(primitive-table '#%engine
(hash
'make-engine make-engine
@ -231,8 +233,6 @@
(error "engine-return: not ready"))
'current-process-milliseconds current-process-milliseconds
'set-ctl-c-handler! set-ctl-c-handler!
'root-continuation-prompt-tag root-continuation-prompt-tag
'break-enabled-key break-enabled-key
'set-break-enabled-transition-hook! void
'continuation-marks continuation-marks ; doesn't work on engines
'poll-will-executors poll-will-executors

View File

@ -27,7 +27,9 @@
make-pthread-parameter
unsafe-make-place-local
unsafe-place-local-ref
unsafe-place-local-set!)
unsafe-place-local-set!
unsafe-root-continuation-prompt-tag
break-enabled-key)
(bounce #%engine
make-engine
@ -37,8 +39,6 @@
current-engine-state
current-process-milliseconds
set-ctl-c-handler!
root-continuation-prompt-tag
break-enabled-key
set-break-enabled-transition-hook!
[continuation-marks host:continuation-marks]

View File

@ -730,7 +730,7 @@
(continuation-mark-set-first #f
break-enabled-key
break-enabled-default-cell
(root-continuation-prompt-tag)))
(unsafe-root-continuation-prompt-tag)))
(define break-enabled
(case-lambda