Hi,
I'm trying to write a wrapper to Apple's CoreMIDI framework with CFFI. CoreMIDI midi input is callback based, the framework creates a thread for you and then calls your given callback on that thread. I wrapped the necessary functions but whenever my program receives midi it crashes to the ldb debugger with a bus error (signal 10). After digging around for a while I came across the following thread:
http://common-lisp.net/pipermail/cffi-devel/2009-May/003121.html
According to the thread I can't callback into lisp on a non-lisp-created thread. Is there anyway to 'bless' a thread so i can callback to lips? Or is the only way to buffer the input in the C thread and then access it from a separate lisp thread? (I'm a lisp beginner using SBCL by the way.)
Maybe it would be nice to put a note in the callback part of the CFFI manual warning about this gotcha?
Thanks for any help or pointers, Bodhi