mirror of
https://github.com/github/codeql.git
synced 2026-07-16 00:38:15 +02:00
Co-authored-by: Raúl Pardo <raul.pardo@protonmail.com> Co-authored-by: SimonJorgensenMancofi <simon.jorgensen@mancofi.dk> Co-authored-by: Bjørnar Haugstad Jåtten <bjornjaat@hotmail.com>
41 lines
678 B
Java
41 lines
678 B
Java
package examples;
|
|
|
|
import java.util.concurrent.locks.Lock;
|
|
import java.util.concurrent.locks.ReentrantLock;
|
|
|
|
@ThreadSafe
|
|
class FaultyTurnstileExample {
|
|
private Lock lock = new ReentrantLock();
|
|
private int count = 0;
|
|
|
|
public void inc() {
|
|
lock.lock();
|
|
count++; // $ Alert
|
|
lock.unlock();
|
|
}
|
|
|
|
public void dec() {
|
|
count--;
|
|
}
|
|
}
|
|
|
|
@ThreadSafe
|
|
class FaultyTurnstileExample2 {
|
|
private Lock lock1 = new ReentrantLock();
|
|
private Lock lock2 = new ReentrantLock();
|
|
private int count = 0;
|
|
|
|
public void inc() {
|
|
lock1.lock();
|
|
count++; // $ Alert
|
|
lock1.unlock();
|
|
}
|
|
|
|
public void dec() {
|
|
lock2.lock();
|
|
count--;
|
|
lock2.unlock();
|
|
}
|
|
}
|
|
|