# Long running nodes

With FlowReactor version 2.0 it is possible to create nodes which run in a loop with async code.

{% hint style="info" %}
Coroutine nodes have been deprecated since version 2
{% endhint %}

### Example 1

This will run the node as long as its graph owner stays active. Use a sub-graph to activate / deactive such nodes.

```csharp
public override async void OnExecute(FlowReactorComponent _flowReactor)
{	
	// Run code in a loop
	while(graphOwner.isActive)
	{
		Follow();
		await Task.Yield();
	}
}
```

### Example 2

{% hint style="info" %}
It is also possible to execute the next connected node while still running itself.
{% endhint %}

First we call ExecuteNext() to execute the connected node, then we run our loop.\
If the node gets deactivated, we call StopExecution to make sure the node highlight gets deactivated.

```csharp
public override async void OnExecute(FlowReactorComponent _flowReactor)
{	
	// Execute output
	ExecuteNext(0, _flowReactor, true);
	// Run code in loop
	while(graphOwner.isActive)
	{
		Follow();
		await Task.Yield();
	}
	// Deactivate node highlight, should this node get deactivated
	StopExecution();
}
```
