mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 11:50:28 +02:00
Fix cached-module-box cache keys
* module/language/cps/reify-primitives.scm (cached-module-box): Include public? in cache key, so we don't accidentally alias private and exported names. Also include bound?, to avoid a window in which thread A resolves and caches var V in preparation for setting it, but thread B sees V for ref before it was initialized.
This commit is contained in:
parent
5809279b99
commit
976433d667
1 changed files with 2 additions and 2 deletions
|
@ -1,6 +1,6 @@
|
||||||
;;; Continuation-passing style (CPS) intermediate language (IL)
|
;;; Continuation-passing style (CPS) intermediate language (IL)
|
||||||
|
|
||||||
;; Copyright (C) 2013-2020 Free Software Foundation, Inc.
|
;; Copyright (C) 2013-2021 Free Software Foundation, Inc.
|
||||||
|
|
||||||
;;;; This library is free software; you can redistribute it and/or
|
;;;; This library is free software; you can redistribute it and/or
|
||||||
;;;; modify it under the terms of the GNU Lesser General Public
|
;;;; modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -224,7 +224,7 @@
|
||||||
(define-ephemeral (cached-module-box cps k src param)
|
(define-ephemeral (cached-module-box cps k src param)
|
||||||
(match param
|
(match param
|
||||||
((module name public? bound?)
|
((module name public? bound?)
|
||||||
(let ((cache-key (cons module name)))
|
(let ((cache-key param))
|
||||||
(with-cps cps
|
(with-cps cps
|
||||||
(letv mod cached)
|
(letv mod cached)
|
||||||
(let$ lookup
|
(let$ lookup
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue