mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +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)
|
||||
|
||||
;; 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
|
||||
;;;; modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -224,7 +224,7 @@
|
|||
(define-ephemeral (cached-module-box cps k src param)
|
||||
(match param
|
||||
((module name public? bound?)
|
||||
(let ((cache-key (cons module name)))
|
||||
(let ((cache-key param))
|
||||
(with-cps cps
|
||||
(letv mod cached)
|
||||
(let$ lookup
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue