-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
One Shot signals do not disconnect before emission #95222
Comments
That's not the source for v4.2.2.stable.official [15073af], here's the actual source (check the commit hash): Lines 1094 to 1166 in 15073af
Fixed by #89451 (since v4.3.dev6.official [89850d5]). MRP of course still results in stack overflow, according to the code. But no more errors. From v4.3.rc2.official [3978628]: |
Tested versions
System information
Windows 10, CPU - i9 12900K, GPU RTX 3070Ti
Issue description
When the callback for a signal that was connected using the CONNECTION_ONE_SHOT flag is processed, the connection is not disconnected as is suggested here in the source code:
This is shown by trying to make the same connection in the callback function and it throwing an error that the connection already exists:
E 0:00:27:0611 FamiliarAI.gd:42 @ make_decision(): Signal 'outgoing_done_acting' is already connected to given callable 'Node3D(FamiliarAI.gd)::recover' in that object.
<C++ Error> Method/function failed. Returning: ERR_INVALID_PARAMETER
<C++ Source> core/object/object.cpp:1358 @ connect()
Steps to reproduce
Run the mrp provided to see that the signal does not disconnect before calling the callable.
Minimal reproduction project (MRP)
mrp.zip
The text was updated successfully, but these errors were encountered: