Class SerialDisposable

java.lang.Object
io.reactivex.rxjava4.disposables.SerialDisposable
All Implemented Interfaces:
Disposable

public final class SerialDisposable extends Object implements Disposable
A Disposable container that allows atomically updating/replacing the contained Disposable with another Disposable, disposing the old one when updating plus handling the disposition when the container itself is disposed.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs an empty SerialDisposable.
    Constructs a SerialDisposable with the given initial Disposable instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Dispose the resource, the operation should be idempotent.
    get()
    Returns the currently contained Disposable or null if this container is empty.
    boolean
    Returns true if this resource has been disposed.
    boolean
    Atomically: set the next disposable on this container but don't dispose the previous one (if any) or dispose next if the container has been disposed.
    boolean
    Atomically: set the next disposable on this container and dispose the previous one (if any) or dispose next if the container has been disposed.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SerialDisposable

      public SerialDisposable()
      Constructs an empty SerialDisposable.
    • SerialDisposable

      public SerialDisposable(@Nullable @Nullable Disposable initialDisposable)
      Constructs a SerialDisposable with the given initial Disposable instance.
      Parameters:
      initialDisposable - the initial Disposable instance to use, null allowed
  • Method Details

    • set

      public boolean set(@Nullable @Nullable Disposable next)
      Atomically: set the next disposable on this container and dispose the previous one (if any) or dispose next if the container has been disposed.
      Parameters:
      next - the Disposable to set, may be null
      Returns:
      true if the operation succeeded, false if the container has been disposed
      See Also:
    • replace

      public boolean replace(@Nullable @Nullable Disposable next)
      Atomically: set the next disposable on this container but don't dispose the previous one (if any) or dispose next if the container has been disposed.
      Parameters:
      next - the Disposable to set, may be null
      Returns:
      true if the operation succeeded, false if the container has been disposed
      See Also:
    • get

      Returns the currently contained Disposable or null if this container is empty.
      Returns:
      the current Disposable, may be null
    • dispose

      public void dispose()
      Description copied from interface: Disposable
      Dispose the resource, the operation should be idempotent.
      Specified by:
      dispose in interface Disposable
    • isDisposed

      public boolean isDisposed()
      Description copied from interface: Disposable
      Returns true if this resource has been disposed.
      Specified by:
      isDisposed in interface Disposable
      Returns:
      true if this resource has been disposed