TestGame/addons/reactivex/subject/innersubscription.gd

21 lines
457 B
GDScript3
Raw Normal View History

2024-12-27 21:00:07 +01:00
extends DisposableBase
class_name InnerSubscription
var subject
var observer
var lock : RLock
func _init(subject_, observer_ = null):
self.subject = subject_
self.observer = observer_
self.lock = RLock.new()
super._init()
func dispose():
var __ = LockGuard.new(this.lock)
if not this.subject.is_disposed and this.observer != null:
if this.observer in this.subject.observers:
this.subject.observers.erase(this.observer)
this.observer = null