-
Notifications
You must be signed in to change notification settings - Fork 171
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
Implement R/W Lock #493
Implement R/W Lock #493
Conversation
Codecov Report
@@ Coverage Diff @@
## master #493 +/- ##
==========================================
+ Coverage 83.33% 83.64% +0.31%
==========================================
Files 52 53 +1
Lines 9176 9308 +132
==========================================
+ Hits 7647 7786 +139
+ Misses 1291 1284 -7
Partials 238 238
Continue to review full report at Codecov.
|
3fb0a39
to
c501cdb
Compare
@st0012 a couple of notes about this PR:
|
@st0012 do you have any insights about the build failure (link)? the tests I wrote pass when I execute them locally, but when running the full build, it seems go is detecting threading issues (is it the testing framework?):
|
c501cdb
to
1e9752b
Compare
@saveriomiroddi Looks like it is because multiple threads want to check if there's error on the stack, but they all want to access the same stack (I guess it's the main stack) instead of their own stack. |
@st0012 I've opened an issue (#499); the minimal test case that triggers the error doesn't involve Concurrent::RWLock:
so I suppose there's a problem either with the testing framework, or the interpreter. I definitely think that threading needs unit testing (especially since it's a selling point of Goby), also to find out if the testing framework is adequate, or needs to be improved. |
@saveriomiroddi This is what I'm concerning about. If there really are multiple threads running in a test case, the race condition will very likely to happen. So in this case, use race condition detector doesn't make sense. However, it'll be hard to find out some cases that race condition might cause nil pointer error. |
08ad823
to
512a44f
Compare
98d9577
to
c65cd83
Compare
76c06a5
to
6b639ea
Compare
@st0012 The build tag strategy didn't work for filtering the tests to be performed without race detector (because untagged test suites are always run). I also had a fair amount of hair pulling because I didn't understand how the travis test (plugin) filtering was working - turns out, it was broken (see #518). |
6b639ea
to
2bbc8a8
Compare
Removed the |
2bbc8a8
to
d49e6e9
Compare
ok, I've fixed the failures from the master merge; once the build is green, it's ready for merge. |
Implementation of Readers/writer lock.
In order to allow execution of some tests with race detector, this PR adds support for the
noracedetection
tag, and separates the test build into regular, andnoracedetection
.Closes #477