// Path: src/main/java/com/github/mottox/taomp/concurrent/locks/SimpleLock.java
// public interface SimpleLock extends Lock {
// 
//     /**
//      * 在进入临界区之前调用。
//      */
//     void lock();
// 
//     /**
//      * 在离开临界区之前调用。
//      */
//     void unlock();
// 
//     @Override
//     default void lockInterruptibly() throws InterruptedException {
//         throw new UnsupportedOperationException();
//     }
// 
//     @Override
//     default boolean tryLock() {
//         throw new UnsupportedOperationException();
//     }
// 
//     @Override
//     default boolean tryLock(long time, TimeUnit unit) throws InterruptedException {
//         throw new UnsupportedOperationException();
//     }
// 
//     @Override
//     default Condition newCondition() {
//         throw new UnsupportedOperationException();
//     }
// }


import com.github.mottox.taomp.concurrent.locks.SimpleLock;
package com.github.mottox.taomp.common;


/**
 * 基于{@link SimpleLock}实现互斥的计数器。
 *
 * @author Robin Wang
 */
public class LockCounter {
    private long value;
// Path: src/main/java/com/github/mottox/taomp/concurrent/locks/SimpleLock.java
// public interface SimpleLock extends Lock {
// 
//     /**
//      * 在进入临界区之前调用。
//      */
//     void lock();
// 
//     /**
//      * 在离开临界区之前调用。
//      */
//     void unlock();
// 
//     @Override
//     default void lockInterruptibly() throws InterruptedException {
//         throw new UnsupportedOperationException();
//     }
// 
//     @Override
//     default boolean tryLock() {
//         throw new UnsupportedOperationException();
//     }
// 
//     @Override
//     default boolean tryLock(long time, TimeUnit unit) throws InterruptedException {
//         throw new UnsupportedOperationException();
//     }
// 
//     @Override
//     default Condition newCondition() {
//         throw new UnsupportedOperationException();
//     }
// }


// Path: src/main/java/com/github/mottox/taomp/common/LockCounter.java
import com.github.mottox.taomp.concurrent.locks.SimpleLock;

package com.github.mottox.taomp.common;


/**
 * 基于{@link SimpleLock}实现互斥的计数器。
 *
 * @author Robin Wang
 */
public class LockCounter {
    private long value;
    private SimpleLock lock;