Java
'wait()' while holding two locks
Warning
New
Last modified: 03 December 2024 Reports calls to wait()
methods that may occur while the current thread is holding two locks.
Since calling wait()
only releases one lock on its target, waiting with two locks held can easily lead to a deadlock.
Example:
synchronized (lockA) {
synchronized (lockB) {
lockB.wait(); //warning
//thread A is stuck here holding lockA
}
}
synchronized (lockA) { //thread B can't enter the block and release thread A
lockB.notify();
}
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
WaitWhileHoldingTwoLocks
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Java, 243.23126 |
Thanks for your feedback!
Was this page helpful?