GDScript: Fix interrupted coroutines not clearing
This commit is contained in:
parent
8120fb1242
commit
ba8b2a1ff0
3 changed files with 42 additions and 0 deletions
|
|
@ -0,0 +1,33 @@
|
|||
# GH-116706
|
||||
|
||||
class Instance:
|
||||
func _init() -> void:
|
||||
print("Instance _init")
|
||||
|
||||
func _notification(what: int) -> void:
|
||||
if what == NOTIFICATION_PREDELETE:
|
||||
print("Instance predelete")
|
||||
|
||||
class LocalOwner:
|
||||
signal never_emitted()
|
||||
|
||||
func _init() -> void:
|
||||
print("LocalOwner _init")
|
||||
|
||||
func _notification(what: int) -> void:
|
||||
if what == NOTIFICATION_PREDELETE:
|
||||
print("LocalOwner predelete")
|
||||
|
||||
func interrupted_coroutine() -> void:
|
||||
print("interrupted_coroutine begin")
|
||||
var _instance := Instance.new()
|
||||
await never_emitted
|
||||
print("interrupted_coroutine end")
|
||||
|
||||
func test():
|
||||
print("test begin")
|
||||
var local_owner := LocalOwner.new()
|
||||
@warning_ignore("missing_await")
|
||||
local_owner.interrupted_coroutine()
|
||||
local_owner = null
|
||||
print("test end")
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
GDTEST_OK
|
||||
test begin
|
||||
LocalOwner _init
|
||||
interrupted_coroutine begin
|
||||
Instance _init
|
||||
LocalOwner predelete
|
||||
Instance predelete
|
||||
test end
|
||||
Loading…
Add table
Add a link
Reference in a new issue