Package io.reactivex.rxjava3.disposables
Class SerialDisposable
java.lang.Object
io.reactivex.rxjava3.disposables.SerialDisposable
- All Implemented Interfaces:
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.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionConstructs an empty SerialDisposable.SerialDisposable
(@Nullable Disposable initialDisposable) Constructs a SerialDisposable with the given initial Disposable instance. -
Method Summary
Modifier and TypeMethodDescriptionvoid
dispose()
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
replace
(@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.boolean
set
(@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.
-
Field Details
-
resource
-
-
Constructor Details
-
SerialDisposable
public SerialDisposable()Constructs an empty SerialDisposable. -
SerialDisposable
Constructs a SerialDisposable with the given initial Disposable instance.- Parameters:
initialDisposable
- the initial Disposable instance to use, null allowed
-
-
Method Details
-
set
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
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 interfaceDisposable
-
isDisposed
public boolean isDisposed()Description copied from interface:Disposable
Returns true if this resource has been disposed.- Specified by:
isDisposed
in interfaceDisposable
- Returns:
- true if this resource has been disposed
-