If you have used workflows, then chances are you have created an infinite loop already! This KB shows how that can happen, as well as a quick and easy way to prevent this.
The workflow below is typical of a wait node designed into an infinite loop. Why? It has an automatic action looping to itself and running forever.
The solution for running an Automatic Action, in a wait node, is to create an additional field on the item. Such as: 'did I take this action yet?'. Then set it to 'true' when you take the action. Next, change your Automatic Action query to check and make sure that field is 'false', before it takes the action that requires the query to read the value as 'true' in order to take the set action only once, or until you set the value to 'false' again.
Another solution to avoid an infinite loop is to have a node as a stopper where a user action has to be taken before the node returns to the original node.