修复BUG: DataManagerTest中worker的uidsLock未释放,导致testDMMulti卡死 #30
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.
DataManagerTest中worker的else分支uidsLock未释放,在真实的new Thread(r).start()多线程测试环境下,testDMMulti会卡死,该版本修复了这个BUG
原代码:
uidsLock.lock();
if(uids0.size() == 0) {
uidsLock.unlock();
continue;
}
int tmp = Math.abs(random.nextInt()) % uids0.size();
long u0 = uids0.get(tmp);
long u1 = uids1.get(tmp);
修复后:
long u0, u1;
uidsLock.lock();
try {
if (uids0.size() == 0) {
continue;
}
int tmp = Math.abs(random.nextInt()) % uids0.size();
u0 = uids0.get(tmp);
u1 = uids1.get(tmp);
} finally {
uidsLock.unlock();
}