abstract class Synchronized[A] extends Ref[A]
A Ref.Synchronized
is a purely functional description of a mutable
reference. The fundamental operations of a Ref.Synchronized
are set
and
get
. set
sets the reference to a new value. get
gets the current
value of the reference.
Unlike an ordinary Ref
, a Ref.Synchronized
allows performing effects
within update operations, at some cost to performance. Writes will
semantically block other writers, while multiple readers can read
simultaneously.
- Alphabetic
- By Inheritance
- Synchronized
- Ref
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new Synchronized()
Abstract Value Members
-
abstract
def
get(implicit trace: Trace): UIO[A]
Reads the value from the
Ref
.Reads the value from the
Ref
.- Definition Classes
- Synchronized → Ref
-
abstract
def
modifyZIO[R, E, B](f: (A) ⇒ ZIO[R, E, (B, A)])(implicit trace: Trace): ZIO[R, E, B]
Atomically modifies the
Ref.Synchronized
with the specified function, which computes a return value for the modification.Atomically modifies the
Ref.Synchronized
with the specified function, which computes a return value for the modification. This is a more powerful version ofupdate
. -
abstract
def
set(a: A)(implicit trace: Trace): UIO[Unit]
Writes a new value to the
Ref
, with a guarantee of immediate consistency (at some cost to performance).Writes a new value to the
Ref
, with a guarantee of immediate consistency (at some cost to performance).- Definition Classes
- Synchronized → Ref
-
abstract
def
setAsync(a: A)(implicit trace: Trace): UIO[Unit]
Writes a new value to the
Ref
without providing a guarantee of immediate consistency.Writes a new value to the
Ref
without providing a guarantee of immediate consistency.- Definition Classes
- Synchronized → Ref
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getAndSet(a: A)(implicit trace: Trace): UIO[A]
Atomically writes the specified value to the
Ref
, returning the value immediately before modification.Atomically writes the specified value to the
Ref
, returning the value immediately before modification.- Definition Classes
- Ref
-
final
def
getAndUpdate(f: (A) ⇒ A)(implicit trace: Trace): UIO[A]
Atomically modifies the
Ref
with the specified function, returning the value immediately before modification.Atomically modifies the
Ref
with the specified function, returning the value immediately before modification.- Definition Classes
- Ref
-
final
def
getAndUpdateSome(pf: PartialFunction[A, A])(implicit trace: Trace): UIO[A]
Atomically modifies the
Ref
with the specified partial function, returning the value immediately before modification.Atomically modifies the
Ref
with the specified partial function, returning the value immediately before modification. If the function is undefined on the current value it doesn't change it.- Definition Classes
- Ref
-
def
getAndUpdateSomeZIO[R, E](pf: PartialFunction[A, ZIO[R, E, A]])(implicit trace: Trace): ZIO[R, E, A]
Atomically modifies the
Ref.Synchronized
with the specified partial function, returning the value immediately before modification.Atomically modifies the
Ref.Synchronized
with the specified partial function, returning the value immediately before modification. If the function is undefined on the current value it doesn't change it. -
def
getAndUpdateZIO[R, E](f: (A) ⇒ ZIO[R, E, A])(implicit trace: Trace): ZIO[R, E, A]
Atomically modifies the
Ref.Synchronized
with the specified function, returning the value immediately before modification. -
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
modify[B](f: (A) ⇒ (B, A))(implicit trace: Trace): UIO[B]
Atomically modifies the
Ref
with the specified function, which computes a return value for the modification.Atomically modifies the
Ref
with the specified function, which computes a return value for the modification. This is a more powerful version ofupdate
.- Definition Classes
- Synchronized → Ref
-
final
def
modifySome[B](default: B)(pf: PartialFunction[A, (B, A)])(implicit trace: Trace): UIO[B]
Atomically modifies the
Ref
with the specified partial function, which computes a return value for the modification if the function is defined on the current value otherwise it returns a default value.Atomically modifies the
Ref
with the specified partial function, which computes a return value for the modification if the function is defined on the current value otherwise it returns a default value. This is a more powerful version ofupdateSome
.- Definition Classes
- Ref
-
def
modifySomeZIO[R, E, B](default: B)(pf: PartialFunction[A, ZIO[R, E, (B, A)]])(implicit trace: Trace): ZIO[R, E, B]
Atomically modifies the
Ref.Synchronized
with the specified function, which computes a return value for the modification if the function is defined in the current value otherwise it returns a default value.Atomically modifies the
Ref.Synchronized
with the specified function, which computes a return value for the modification if the function is defined in the current value otherwise it returns a default value. This is a more powerful version ofupdateSome
. -
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
update(f: (A) ⇒ A)(implicit trace: Trace): UIO[Unit]
Atomically modifies the
Ref
with the specified function.Atomically modifies the
Ref
with the specified function.- Definition Classes
- Ref
-
final
def
updateAndGet(f: (A) ⇒ A)(implicit trace: Trace): UIO[A]
Atomically modifies the
Ref
with the specified function and returns the updated value.Atomically modifies the
Ref
with the specified function and returns the updated value.- Definition Classes
- Ref
-
def
updateAndGetZIO[R, E](f: (A) ⇒ ZIO[R, E, A])(implicit trace: Trace): ZIO[R, E, A]
Atomically modifies the
Ref.Synchronized
with the specified function, returning the value immediately after modification. -
final
def
updateSome(pf: PartialFunction[A, A])(implicit trace: Trace): UIO[Unit]
Atomically modifies the
Ref
with the specified partial function.Atomically modifies the
Ref
with the specified partial function. If the function is undefined on the current value it doesn't change it.- Definition Classes
- Ref
-
final
def
updateSomeAndGet(pf: PartialFunction[A, A])(implicit trace: Trace): UIO[A]
Atomically modifies the
Ref
with the specified partial function.Atomically modifies the
Ref
with the specified partial function. If the function is undefined on the current value it returns the old value without changing it.- Definition Classes
- Ref
-
def
updateSomeAndGetZIO[R, E](pf: PartialFunction[A, ZIO[R, E, A]])(implicit trace: Trace): ZIO[R, E, A]
Atomically modifies the
Ref.Synchronized
with the specified partial function.Atomically modifies the
Ref.Synchronized
with the specified partial function. If the function is undefined on the current value it returns the old value without changing it. -
def
updateSomeZIO[R, E](pf: PartialFunction[A, ZIO[R, E, A]])(implicit trace: Trace): ZIO[R, E, Unit]
Atomically modifies the
Ref.Synchronized
with the specified partial function.Atomically modifies the
Ref.Synchronized
with the specified partial function. If the function is undefined on the current value it doesn't change it. -
def
updateZIO[R, E](f: (A) ⇒ ZIO[R, E, A])(implicit trace: Trace): ZIO[R, E, Unit]
Atomically modifies the
Ref.Synchronized
with the specified function. -
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()