Hi everyone,

I am working on an FFI which overall progresses well - the Racket FFI library is really a very nice tool to have.

The one problem I couldn't solve yet is handling resource allocation. My use case is very similar to what allocator/deallocator are meant for, except that the allocated object is not the return value of any function, and therefore I cannot use allocator.

I have an API like

   int make_foo(foo** new_foo);
   int destroy_foo(foo* a_foo);

so my FFI definitions look like

  (define _foo (_cpointer 'foo))

  (define-fooapi make-foo
     (_fun (foo : (_ptr o _foo)
            -> (r : _int)
            -> (values r foo))

  (define-fooapi destroy-foo
     (_fun _foo -> _void))

Given that make-foo returns two values, I cannot use #:wrap to make it an allocator.

Since the C API I am wrapping is pretty standard, I suspect others have had this problem before. Any suggestions?

Thanks in advance,

You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to