[racket] Destructors in Racket
No, use the safe "will executors" API, instead.
The unsafe finalizer API is for low-level, atomic finalization. Closing a port can flush buffers and more, and it's not a good idea to do that in an unsafe atomic context.
> On Aug 2, 2014, at 11:12 AM, Roman Klochkov <kalimehtar at mail.ru> wrote:
>
> I have a structure, that has a filestream inside it. File have to be cosed, when the structure is not used anymore (so gargbage collected).
>
> Is the best way to do
> (require ffi/unsafe)
> (register-finalizer my-obj
> (lambda (x) (close-output-port (obj-file x))))
>
> ?
>
> It seems doing right thing, but why `ffi/unsafe'? Is it OK, when my program actually doesn't use FFI?
>
>
> --
> Roman Klochkov
> ____________________
> Racket Users list:
> http://lists.racket-lang.org/users