fix: guard waitDirty against spurious wakeups#1765
Conversation
04af364 to
fdb4adf
Compare
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 7 minutes and 21 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Object.wait(timeout) can return due to spurious wakeups, so it must be called inside a while loop that re-checks the condition. Use a deadline-based loop to correctly handle the remaining timeout.
fdb4adf to
aa29592
Compare
|
Object.wait(timeout) can return due to spurious wakeups, so it must be called inside a while loop that re-checks the condition. Use a deadline-based loop to correctly handle the remaining timeout.
Object.wait(timeout) can return due to spurious wakeups, so it must be called inside a while loop that re-checks the condition. Use a deadline-based loop to correctly handle the remaining timeout.



Summary
java:S2274:Object.wait(timeout)inScreenTerminal.waitDirty(long)was not in a while loop, making it vulnerable to spurious wakeups.This was flagged as a new issue on PR #1758.
Summary by CodeRabbit
Bug Fixes