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 <[email protected]> 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 ____________________ Racket Users list: http://lists.racket-lang.org/users

