summaryrefslogtreecommitdiff
path: root/module/statprof.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2017-03-09 10:42:58 +0100
committerAndy Wingo <wingo@pobox.com>2017-03-09 10:44:09 +0100
commite7d341407950d504e80f92588d08f3a7c81bee37 (patch)
tree9f2e3aae6e4dad3c39d71c1ac075d42f2142c295 /module/statprof.scm
parentbfa38835923800b5aa69a254b4fe8cf0858dca67 (diff)
downloadguile-e7d341407950d504e80f92588d08f3a7c81bee37.tar.gz
Adapt statprof to new preemptive interrupts
* module/statprof.scm (profile-signal-handler): Cut an additional stack frame, corresponding to the handle-interrupts trampoline added recently.
Diffstat (limited to 'module/statprof.scm')
-rw-r--r--module/statprof.scm6
1 files changed, 4 insertions, 2 deletions
diff --git a/module/statprof.scm b/module/statprof.scm
index 1efb15dff..a58fc6da6 100644
--- a/module/statprof.scm
+++ b/module/statprof.scm
@@ -275,9 +275,11 @@
;; handler in an inner letrec, so that the compiler sees
;; the inner reference to profile-signal-handler as the
;; same as the procedure, and therefore keeps slot 0
- ;; alive. Nastiness, that.
+ ;; alive. Nastiness, that. Finally we cut one more
+ ;; inner frame, corresponding to the handle-interrupts
+ ;; trampoline.
(stack
- (or (make-stack #t profile-signal-handler (outer-cut state))
+ (or (make-stack #t profile-signal-handler (outer-cut state) 1)
(pk 'what! (make-stack #t)))))
(sample-stack-procs state stack)