[X2Go-Commits] [pale-moon] 76/102: Fix possible data race while updating scope object during compacting GC.
git-admin at x2go.org
git-admin at x2go.org
Mon Feb 25 23:25:54 CET 2019
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch upstream/28.4.0
in repository pale-moon.
commit f8db3a89b664ce5a53a4b663daf17c70bdaf398d
Author: wolfbeast <mcwerewolf at wolfbeast.com>
Date: Thu Feb 7 12:31:57 2019 +0100
Fix possible data race while updating scope object during compacting GC.
---
js/src/jsgc.cpp | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/js/src/jsgc.cpp b/js/src/jsgc.cpp
index 3d4dae9..8cee9ec 100644
--- a/js/src/jsgc.cpp
+++ b/js/src/jsgc.cpp
@@ -2310,22 +2310,27 @@ GCRuntime::updateCellPointers(MovingTracer* trc, Zone* zone, AllocKinds kinds, s
// 2) typed object type descriptor objects
// 3) all other objects
//
+// Also, there can be data races calling IsForwarded() on the new location of a
+// cell that is being updated in parallel on another thread. This can be avoided
+// by updating some kinds of cells in different phases. This is done for JSScripts
+// and LazyScripts, and JSScripts and Scopes.
+//
// Since we want to minimize the number of phases, we put everything else into
// the first phase and label it the 'misc' phase.
static const AllocKinds UpdatePhaseMisc {
AllocKind::SCRIPT,
- AllocKind::LAZY_SCRIPT,
AllocKind::BASE_SHAPE,
AllocKind::SHAPE,
AllocKind::ACCESSOR_SHAPE,
AllocKind::OBJECT_GROUP,
AllocKind::STRING,
- AllocKind::JITCODE,
- AllocKind::SCOPE
+ AllocKind::JITCODE
};
static const AllocKinds UpdatePhaseObjects {
+ AllocKind::LAZY_SCRIPT,
+ AllocKind::SCOPE,
AllocKind::FUNCTION,
AllocKind::FUNCTION_EXTENDED,
AllocKind::OBJECT0,
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/pale-moon.git
More information about the x2go-commits
mailing list