-
Notifications
You must be signed in to change notification settings - Fork 165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RCORE-2233 Reduce locking for StringInterner lookup and compare methods #7954
RCORE-2233 Reduce locking for StringInterner lookup and compare methods #7954
Conversation
Pull Request Test Coverage Report for Build finn.schiermer-andersen_96Details
💛 - Coveralls |
// | ||
// Limitations wrt concurrency: | ||
// | ||
// To be used exclusively from Table and in a non-concurrent setting: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it make sense to have a counter that is increased/decreased when calling the non-threadsafe operation. Then we could have assertions requiring that the counter is 1 inside those functions and 0 in the threadsafe functions below.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for such a counter to be correctly shared among threads (and thus be useful for asserting) it would have to be an atomic which carries some overhead. I'm not convinced it is worth it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I could add it in debug mode only?
@finnschiermer curios to see how the benchmarks look like :-) .. I can run those. |
What, How & Why?
Reduce locking in the string interner:
Also entirely remove locking from methods where it isn't needed (less important since they are much less frequently used than the methods mentioned above).