[Mono-list] jack-cil: dealing with a mono runtime crash and some threading
issues.
Jorge García
jgarcia@ac.upc.es
Tue, 02 Nov 2004 20:35:35 +0100
Hi
I have been some time trying to get working a binding of JACK (JACK
Audio Connection Kit) to c-sharp, but I can't realize why it makes mono
crash:
** ERROR **: file mini.c: line 6558 (mono_get_lmf_addr): should not be
reached
aborting...
I'm using Debian unstable Mono 1.0.2-1 packages (with 1.0.1 the same
example it gave a segmentation fault).
Below I explain how jack-cil (not) works and when the error arrives. I'd
appreciate a lot any help to get this working (it would be very fun to
program sound apps with Mono).
Jack-cil code (with autotools and Monodoc support) can be found here,
http://vgafib.upc.es/~jorge/download/
Jorge
The JACK system consists in a local server (jackd) who manages de audio
interfaces and who coordinates the dataflow between clients.
To do the simplest JACK aplication we must take these steps:
1) Create a client to register with the server
client = new Jack.Client("clientname");
2) Register a callback function, which will be called at the right time
by the server
client.Process += new System.EventHandler(OnProcess);
3) Tell the server that the app is read to start processing data
client.Activate();
My binding consists in a gobject based glue lib called libgjack, that is
translated to c-sharp with gtk-sharp tools. libgjack examples work ok,
but when using the mono runtime I get next error when the jack server
calls the callback (and not when the own lib calls it):
jorge@rumba$ mono Client.exe
Simple jack-cil test
Executo gjack_client_new
Executo OnProcess!!!! <--- Signal emited directly by gjack
Name prova
S'ha activat correctament
Entro a process
<----- Process signal emited by jackd call
** ERROR **: file mini.c: line 6558 (mono_get_lmf_addr): should not be
reached
aborting...
Avortat
You can try jack-cil with:
1) Download from http://vgafib.upc.es/~jorge/download/
2) ./configure --prefix=/your_mono_prefix_path
3) make install
4) Test ligjack (it works ok)
cd tests/libgjack
make
jackd -d alsa &
tests/libgjack/test-client
5) Test with jack-cil (mono error)
cd tests
make
jackd -d alsa &
mono tests/Client.exe