Enable resolution of indirect object references when using worker processes #51
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
It is somewhat of a hack, but not really, unless you have an irrational fear of global variables (news flash: functions, modules, and classes are also global objects).
Basically we just pass the
id
of the parent process'Document
object to the workers, who just use this integer instead of a weak reference when creatingObjRef
- it can be serialized when returned, and then we just look it up in a table ... of weak references ... toDocument
objects with worker processes.We could of courseWe will in fact just do this for all indirect object references, all the time,which might be faster in single-threaded code too.which is not slower and also simplifies the code somewhat.