Hyperlinkv0.8.0-beta.28

SynchronizedRef

SynchronizedRef.setAndGetconsteffect/SynchronizedRef.ts:433
<A>(value: A): (self: SynchronizedRef<A>) => Effect.Effect<A>
<A>(self: SynchronizedRef<A>, value: A): Effect.Effect<A>

Sets the value of the SynchronizedRef and returns the new value.

When to use

Use to replace the current SynchronizedRef value with a known value and return that new value.

mutationssetgetAndSet
export const setAndGet: {
  <A>(value: A): (self: SynchronizedRef<A>) => Effect.Effect<A>
  <A>(self: SynchronizedRef<A>, value: A): Effect.Effect<A>
} = dual(
  2,
  <A>(self: SynchronizedRef<A>, value: A): Effect.Effect<A> =>
    self.semaphore.withPermit(Ref.setAndGet(self.backing, value))
)