>>>>> On Fri, 27 Jan 2006 17:10:55 +0100, "Hoehle, Joerg-Cyril" <[EMAIL >>>>> PROTECTED]> said: > > Another thing not yet covered by CFFI is finalization: one may wish > for the foreign entity in the cl+ssl stream object to be free'd even > when the stream is never closed by the application. Here again, > implementations vary: Corman always adds a FREE finalizer to > ct:malloc. CLISP does not (doing so would even break its :malloc > parameter mode, where the foreign side does the free). > > Maybe finalizable foreign-alloc is something that CFFI > should offer as an additional keyword? > > Then of course, one must think about what happens when foreign-free is > called. I'd expect Corman to detect that, since there's not even a > possibility to not have that automatic finalizer. CLISP could use > invalid pointers to detect the duplicate free, but I'd expect > implementations where raw pointers (or integers, e.g. Allegro) are > used to not be able to detect duplicate free. Therefore, CFFI must > probably specify that free is not allowed by the user anymore when > (foreign-alloc :finalize t) is used. > > Hmm, with Allegro having pointers as ints, it will be hard to finalize > that... Maybe they feature something else?
It might be better to do the finalization on the stream itself (you probably want it the close the handle anyway). __Martin _______________________________________________ cffi-devel mailing list cffi-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel