Does a foreach loop wait for body pin?

I’m fully aware that if I use latency, loops will not wait.

Does anyone know if the foreach loop will wait for the body pin before continuing, or does it just generate threads?

Thanks :slight_smile:

The foreach completed pin should execute after the loop is finished. For a simple example of a foreach loop here’s one from Unity.

public GameObject[] things; //The array variable

IEnumerator event () { //The event that executes the foreach loop
	
	foreach(GameObject i in things){
		//Loop Body
		Debug.Log(Time.time);
		yield return new WaitForSeconds(1);
		//The loop waits 1 second before the next iteration
	}
	
	//Loop Body should have executed things.Length() times before continuing.
	//Completed
	Debug.Log("Finished");
}

However if the event is called multiple times like Event Tick, it will start a new loop every time so the first loop’s Completed will execute before the second loop’s Loop Body has finished.

M4g5o, thanks for this.

I guess my question really is ‘Does the sequence node wait for each pin?’, as that’s what’s in the foreach macro.

I get conflicting answers about that.

At the moment, I have made a ForEachNext just to be sure…