Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions modules/gdscript/gdscript_function.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -277,5 +277,6 @@ GDScriptFunctionState::~GDScriptFunctionState() {
MutexLock lock(GDScriptLanguage::singleton->mutex);
scripts_list.remove_from_list();
instances_list.remove_from_list();
_clear_stack();
}
}
Original file line number Diff line number Diff line change
@@ -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")
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
GDTEST_OK
test begin
LocalOwner _init
interrupted_coroutine begin
Instance _init
LocalOwner predelete
Instance predelete
test end