Vom Prinzip her ist ein Semaphor eine Art Zähler, den die Threads inkrementieren oder dekrementieren können.
Es ist daher ausreichend, einfach eine Variable für die Iterationszahl zu dekrementieren und einen entsprechenden bedingten Sprung anzuschließen.