Re: [Jack-Devel] Windows: Problem running Jack Server and Clients with DLLs
I Don't think what I am doing is an "In Server" client.
Attached is a test program where I just threw all the parts of the process into a console app.
With this test program, the problem is still there.
I create the server. Then I create a client and register its ports and process callback with the server. I sleep for 5 seconds so you can see the process callback happening.
Then I try to create another client by another name for the purpose of making connections. After I call jack_client_open()...the problems arise
Because my process callback is printing "." this is what I see:
.................................................JackWinSemaphore::TimedWait name = jack_pipe.default_freewheel time_out
JackFreewheelDriver::ProcessSync SuspendRefNum error
JackAudioDriver::ProcessGraphSync: ProcessWriteSlaves error, engine may now behave abnormally!!
And that repeats indefinitely but since the callback isn't being called anymore, no more periods.
Also, if I create the server and make connections this way, but run my client as a separate process, things work just fine.
Thanks,
Chris
-----Original Message-----
From: Stéphane Letz [mailto:[hidden]]
Sent: Monday, April 30, 2012 2:46 PM
To: Sprague, Christopher M CIV NAVAIR, Code 4.6.2.3
Cc: [hidden]
Subject: Re: [Jack-Devel] Windows: Problem running Jack Server and Clients with DLLs
Le 30 avr. 2012 à 19:24, Sprague, Christopher M CIV NAVAIR, Code 4.6.2.3 a écrit :
> I have two DLLs.
>
> 1) which uses the JACK Control API to setup and start the JACK server
> and make / break connections
>
> 2) an implementation of a JACK Client that does some processing
>
> When I use the DLL's from a launcher application, everything seems to
> work fine until I make connections...(i.e. when I call jack_activate()
> from my Server DLL to activate a client I created to make connections)
>
> JACK server DLL spawns a thread that sets up the server, creates, and
> starts it. Then spins on jackctl_wait_signals(signal)
>
> The Client DLL registers itself with the server, registers the process
> callback, defines ports, activates etc...
>
> At that point things work as expected. The client callback is being
> called by the Jack Server and it all looks good.
>
> Now...In order to make connections, My Jack Server DLL creates a client
> called "jack_connnect" and when jack_activate(client) is called things
> start going wrong. The DSP load jumps to 75% and the process callback
> in the client starts getting skipped. I discovered that if ANY other
> client calls jack_activate() this happens.
So you basically create a "in server" client right?
Described behaviour looks like a thread priority issue..
Do you have any test code that shows the problem that you could share?
Thanks.
Stéphane
* Attachment: 'JackTest.cpp'
content-type: application/octet-stream
content-description: JackTest.cpp
1335820112.16655_0.ltw:2,a <CE5DE611805B6547BFDAC077D8BF7F0203DDC9AB at naeajaxsez02v dot nadsusea dot nads dot navy dot mil>