>>>>> 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

Reply via email to