Does FUSE use threads?
When starting from 'C mode' and then doing Guile things, the thread
needs to be prepared to deal with that - scm_init_guile (IIRC) does both
initialisation and preparing the thread.
For temporarily going to 'Guile mode', there is scm_with_guile (IIRC).
Specifics are in the manual. So, you could initialise Guile in main, and
use IIUC scm_with_guile from handlers invoked from threads created by FUSE.
Also, don't call Scheme things from signal handlers (I don't know if
that's happening here). It often implicitly assumes it isn't done from
signal handlers.
Best regards,
Maxime Devos