Ok, this is seriously confusing. In the startup of my little project I call a function DoStuff. At the end of that function I set the return value to 1. Inside that function I call another function DoLotsofStuff without a return value under the stupid assumption that THAT function will complete, whether it has a return value or not, before it completes DoStuff and returns the 1. Instead, what I'm seeing is that DoMoreStuff fires because the DoStuff returns a 1 long before DoLotsofStuff is done.
+ System: On start of layout
----+ System: Functions.DoStuff = 1
* On function 'DoStuff'
-> Functions: Call DoLotsofStuff
-> Functions: Set return value 1
I'll mention this again. I've been writing code a long time. I have never, ever called a function in any language and have the code skip over it before it finishes even without a return value. But it appears Construct is doing just that. Am I going to have to assign some pointless return value to every function just to force it to completed before the code goes to the next event????
And I apologize in advance. I've had an extremely aggravating morning writing code. It's taken me 3 hours to figure out why my code was not working as intended and this is the reason why.
Please tell me this is a bug and I should fill out a bug report.
And yea, I realize this isn't true threading but it's doing a fine job of faking it.