@effect-ts/system
Version:
Effect-TS is a zero dependency set of libraries to write highly productive, purely functional TypeScript at scale.
33 lines (23 loc) • 595 B
text/typescript
// ets_tracing: off
import "../../Operator/index.js"
import { AtomicReference } from "../AtomicReference/index.js"
export class AtomicNumber extends AtomicReference<number> {
constructor(n: number) {
super(n)
this.incrementAndGet = this.incrementAndGet.bind(this)
this.decrementAndGet = this.decrementAndGet.bind(this)
}
incrementAndGet() {
this.set(this.get + 1)
return this.get
}
decrementAndGet() {
this.set(this.get - 1)
return this.get
}
getAndIncrement(): number {
const ret = this.get
this.set(this.get + 1)
return ret
}
}