GESCHUETZT
SYNOPSIS
        void garbage_collection();
        void garbage_collection(string filename);

BESCHREIBUNG
        Befiehlt dem Treiber, nach Ende der aktuellen Ausfuehrung eine
        Garbage Collection zu beginnen. Je nachdem, welcher Memory Allocator
        verwendet wird, ist die Garbage Collection mehr oder weniger
        gruendlich.

        Wird der smalloc Memory Allocator verwendet, erzeugt GC einen Output
        in einem Logfile. Der Standardname fuer das Logfile wird beim
        Programmstart festgelegt, kann aber zur Laufzeit veraendert werden,
        wenn das Argument <filename> angegeben ist. Der Log-Output wird in
        diesem Fall an das bezeichnete Logfile angefuegt.

        Fuer andere Memory Allocators erzeugt garbage_collection() keinen
        Output. Ein allfaelliges Argument <filename> wird ignoriert.

SIEHE AUCH
        rusage(E), valid_write(M)
