Skip to content

Conversation

@qk-antares
Copy link

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();
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant