Ressourcen erst freigeben, wenn ihre Nutzer sie nicht mehr benötigen.
Ein Dienst kann einen Eingang, aktive Verbindungen, eine Warteschleife und einen Logger besitzen. Beim Stopp solltest du den Zufluss begrenzen, bevor du die Ressourcen laufender Arbeit entfernst. Sonst kann kurz vor dem Schließen noch neue Arbeit entstehen oder ein Worker auf ein bereits freigegebenes Objekt zugreifen. Entwirf das Aufräumen außerdem für einen zweiten Aufruf: Nach einem halben Start oder einem Fehler kann die Stopproutine erneut erreicht werden. Ein dokumentierter Zustand ‚nicht gestartet‘ ist dabei oft hilfreicher als eine ungeprüfte Annahme, alle Felder seien belegt.
Ein Beispiel
Musterreihenfolge: Eingang schließen, Abbruch signalisieren, Arbeitsende beobachten, verbleibende Ressourcen freigeben, Ergebnis protokollieren. Welche Schritte im konkreten System vertauscht werden dürfen, hängt von Besitz und Abhängigkeiten ab; ein Diagramm macht diese Voraussetzungen sichtbar.