[ENH] Allow concurrent transformation of tables into new domains #4363
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.
Issue
Table.from_table was locked to one thread only. This started being problematic now that more widgets are running in threads. If a long
Table.transform
is running in one thread, another threads will block if they try to useTable.transform
.This happened, for example, while testing Quasars/orange-spectroscopy#395 (see comment by @stuart-cls).
Description of changes
Table.from_table had a reentrant lock on its conversion cache. That lock was needed so that we knew when to purge the cache. Making the cache thread-local allows concurrent calls.
Includes