I was answering you last statement in your original post about what happened to the other languages. Didn’t mean to actually to offer any explanation, sorry.
I don’t think you really need to do anything. From what I can see, AcceptStringInput is added to a listener. Any time that the listener detects an event on inputField.onEndEdit.AddListener, the AcceptStringInput will run. That’s how it knows to run. It seems to me that the event is triggered after the inputField is finished editing (by hitting enter it seems), and therefore will run inputAction because there are multiple entries in InputAction when the event triggers.
Now that I’m reading this closer:
c++ If anything, things were single threaded in microprocessors. You had interrupts which halted the current running code to handle a tidbit of other code and then returned to the main line. However, in C++ based UnReal, no idea. Haven’t really worked with it so I can’t say much.
Java: It’s been so long since I’ve touched Java, but should be similar to C#.
Javascript: I don’t know enough in the case of sync and async calls. I believe if you’re doing an async call to another place, yes, you’d have to have a placeholder and then update after getting the results of the async call.
How do you know if it’s multi or single? That I cannot tell you. I’m leaning toward single, but it may be distributed if it can get away with it.
Javascript should do things one at a time, but for certain things like calls to an external website, it’ll perform the get but still continue on (at least in jquery anyways)
Don’t know where I can really point you for more reading. This is just what I’m observing from what I’ve touched.