var _a;

import * as tsplus_module_1 from "@tsplus/stdlib/structure/Equals";
import { WriteLockSym } from "@effect/core/stm/TReentrantLock/definition/WriteLock";
export class InternalWriteLock {
  constructor(writeLocks, readLocks, fiberId) {
    this.writeLocks = writeLocks;
    this.readLocks = readLocks;
    this.fiberId = fiberId;
    this[_a] = WriteLockSym;
  }

  writeLocksHeld(fiberId) {
    return tsplus_module_1.equals(this.fiberId, fiberId) ? this.writeLocks : 0;
  }

  readLocksHeld(fiberId) {
    return tsplus_module_1.equals(this.fiberId, fiberId) ? this.readLocks : 0;
  }

}
_a = WriteLockSym;
/**
 * @tsplus macro remove
 */

export function concreteWriteLock(_) {//
}
//# sourceMappingURL=InternalWriteLock.mjs.map