This repository has been archived by the owner on Aug 8, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Remove concurrent access to objects from worker threads #667
Labels
Core
The cross-platform C++ core, aka mbgl
Comments
Is there a way to do this nicely with C++, ie worker thread pausing and updating happens automatically when you call some write access method? (ie all all non const methods) |
4 tasks
This was referenced Sep 15, 2016
Merged
Closed
Closed
Fixed with #8341. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Currently, we have a number of objects that are shared across threads. This means we're locking these objects when accessing them. To remove lock contention, and to align the architecture with JS, we should move away from shared memory objects.
The way JS (web workers) operates is by having a read-only state of the object in question (e.g. the sprite/glyph atlas). When a write access is required, the worker thread is suspended and the operation is carried out in the main thread (e.g. adding glyphs to the glyph atlas). Then, the updated state is sent to the worker thread again.
The text was updated successfully, but these errors were encountered: