1
extends RefCounted
class_name WaitGroup
signal finished
var _waiting := 0
var _isFinished := false
func add(signal_for_wait: Signal) -> void:
if _isFinished:
push_error("Cannot add signals after wait has completed.")
return
_waiting += 1
signal_for_wait.connect(_on_signal, CONNECT_ONE_SHOT)
func wait() -> void:
if _waiting == 0:
return
await finished
func _on_signal(...args) -> void:
_waiting -= 1
if _waiting == 0:
_isFinished = true
finished.emit()
For immediate assistance, please email our customer support: [email protected]