Subject: C-procedure runs when called from C-code, but hags when called from Guile

From: Михаил Бахтерев<[email-masked]>
Date: Tue, 13 Jun 2023 15:18:51 +0500

Greetings.

1. The version

$ guile --version
guile (GNU Guile) 3.0.9

2. The machine

$ uname -a
Linux bioscope 6.3.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 10 Jun 2023
00:35:35 +0000 x86_64 GNU/Linux

3. The package

$ pacman -Qi guile
Version         : 3.0.9-1
Architecture    : x86_64
Depends On      : gmp  ncurses  libunistring  gc  libffi  libxcrypt

4. The problem

I'm working on application for scientific computer vision. We use one of
the Andor camera. I've decided to code configuration and user interface
parts in Guile Scheme, as to my experience, it is a lot simpler. But i've
encountered strange error.

Attached archive contains three source files. cam.c implements simple
sequence of interactions with camera driver. That sequence should result in
image acquisition and in the clicking of camera shutter. I've built shared
library from this code (see makefile, please) and have linked it with
simple main program (test.c). When i run resulting binary, i get

$ ./test
INITIALIZATION
CONFIGURATION
ACQUISITION
-- shutter clicks here
AWAITING
SHUTTING DOWN

When i try to run this code from Guile Scheme, as extension, it hangs.

$ guile test.scm
defining single-shot
INITIALIZATION
CONFIGURATION
ACQUISITION
AWAITING
-- no shutter clicking
^C

I do not understand how to debug further, so i just include straces of both
runs in attached archive. If anyone will give me some directions for
investigation of the problem, i'll try to do my best. Thanks in advance!

- Respectfully, Mike.