hi,
Ich bin der Meinung, dass ein session _destroy() sofort die zugehörige Sessiondatei (und die Sessionvariablen und die Sessionnummer) löscht. Der Garbage Collector läuft davon völlig unabhängig und prüft lediglich das LastTouch-Datum der Dateien.
meines wissens erklärt session_destroy nur die gültigkeit der session für beendet; die zur session im session-directory abgelegten dateien werden jedoch separat "entsorgt".
und hier kommt der garbage collector zum einsatz, der zufällig gestriggert wird, und dann dort obsolete dateien löscht.
der zufallsgesteuerte aufruf wird deshalb eingesetzt, weil es schlicht zu viel performance kosten würde, nach jeder aktion eine bereinigung der session-dateien durchzuführen.
die häufigkeit, in der der garbage collector aktiv wird, lässt sich über die konfigurationseinstellung session.gc_probability beeinflussen.
gruss,
wahsaga