Hello Christian,
soweit ich das durchschaue, wird die Rückgabe des Handles (bei fopen) durch
zend_list_delete(stream->rsrc_id);
veranlasst.
Das müsste dann also immer aufgerufen werden, wenn ein Funktionsblock verlassen wird, in dem eine Ressource-Variable angelegt wurde, egal ob die ressource direkt zurückgegeben wurde oder nur aufgegeben wurde und wenn eine Ressource-Variable mit einer neuen Ressource überschrieben wird, was ja nur umständlich ginge, weshalb dann die internen Ressource-Variablen vermutlich auch hochzählen?
Wenn aber das Auflösen der Ressourcehandle-Bindung erst später durch die Garbage Collection vorgenommen wird, kann dies für die Datensicherheit (flushen der Buffers) und den Speicherverbrauch sehr negativ sein.
Solltest Du also irgendwann Zeit dazu finden, die passenden Stellen im PHP-Quellcode mal zu suchen und zu benennen, dann würde ich mich darüber freuen.
Mich interessiert dabei, wann genau die Bindung zur Ressource aufgelöst wird.
Bei den Image-Funktionen gibt es sehr viele Berichte darüber, dass das wohl nicht zeitnah klappt, wenn man es nicht dediziert selber veranlasst.
@EKKi:
Wie ist das zu verstehen, dass Du jetzt vorgibst, wer hier was zu posten hat? Habe ich 'was verpasst?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
