Add I/O tests that run on multiple threads#955
Open
tmadlener wants to merge 3 commits into
Open
Conversation
These tests build / read Frames on multiple threads serializing the I/O part (as per design). They effectively check whether the Frame construction as well as the retrival of buffers from the `FrameData` is done properly when running under TSan. They do not check whether accessing a single Frame from multiple threads is thread safe that is covered by unit tests
Collaborator
Author
|
I also confirmed that running on 8 threads with 1000 events each doesn't trigger TSan (just in case). Works as well. For that case there is quite a bit of contention on the read / write lock, but getting optimal performance out of this is not the goal of the tests. |
Block reading thread for as briefly as possible
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
BEGINRELEASENOTES
ENDRELEASENOTES
These tests build / read Frames on multiple threads serializing the I/O part (as per design). They effectively check whether the Frame construction as well as the retrival of buffers from the
FrameDatais done properly when running under TSan. They do not check whether accessing a single Frame from multiple threads is thread safe that is covered by unit tests.This was something that I would have liked to do for quite some time, and due to #940 it has become possible to actually run these under the sanitizers so that there is some actual checks behind it as well.