Nächste Seite: Import-Alias Aufwärts: Systemspezifische Besonderheiten Vorherige Seite: Systemspezifische Besonderheiten

##
Abschlussprozeduren (CLOSE)

Der Modulrumpf eines -Programmes hat die Aufgabe, einen definierten Zustand zu schaffen. Oft werden dabei Betriebsmittel reserviert, beispielsweise wird Speicher alloziert, Dateien oder Fenster geöffnet. Bei Programmende besteht für das Programm keine Möglichkeit, die Betriebsmittel wieder freizugeben. Da das Betriebssystem des Amigas die Betriebsmitel zwar vergibt, aber nicht kontrolliert, bleiben diese auch nach Programmende reserviert5.2Daher musste ein Mechanismus gefunden werden, der die Freigabe nach dem Programmende ermöglicht. Dies gilt besonders für fehlerhafte Programme, bei denen der Programmabbruch an einer beliebigen Stelle möglich ist.

bietet dafür das Konzept des Abschlusscodes. Jedes Implementations- oder Programmodul kann einen Codeteil enthalten, der bei Programmende oder bei einem ,,Absturz`` aufgerufen wird. Dafür gibt es in diesem Compiler eine syntaktische Erweiterung: das reservierte Wort CLOSE. Es darf nur innerhalb des Modulblockes eines Implementations- oder Programmoduls angegeben werden. Dieses Wort beendet syntaktisch den Initialisierungsteil des Moduls und leitet den Teil ein, der beim Programmende ausgeführt wird. Im weiteren Verlauf wird dieser Teil auch Close-Phase genannt.

Auf ähnliche Weise schliessen die Moduln `FileSystem` und `SeqIO` alle offenen Dateien, wie auch `Heap` und `Storage` alle zuvor allozierten Speicherbereiche wieder freigeben. Insbesondere das Modul `DosSupport`, das bei Benutzung alle Directory-Locks und offenen Dateien verwaltet, sei in diesem Zusammenhang empfohlen. Fehlerhafte Programme verhindern somit das Entstehen von ,,unsauberen`` Situationen und ersparen einen Neustart des gesamten Systems.

Nächste Seite: Import-Alias Aufwärts: Systemspezifische Besonderheiten Vorherige Seite: Systemspezifische Besonderheiten