Re: [Jack-Devel] A couple of questions about Jackdmp
On 18 Apr 2011, at 09:38, Stéphane Letz wrote:
>
>> In recent mailings I've noticed some references to the VC++10 runtime and redistributables.
>
> Only to compile JackRouter ASIO driver, not for jack2 itself.
>
Ah - that's the bit I hadn't realised. Looking through my code though, although I modified the jackdmp source quite extensively, the vast majority of my changes seem to be for accommodating Cygwin rather than VC++. For example wherever the code says this:-
#ifdef WIN32
I've needed to change it to this:-
#if (defined(WIN32) && !defined(__CYGWIN__))
With regard to Visual C++ the only major change I needed to implement was to use the threading library 'pthread_win32' as opposed to regular pthread. The other changes seem to be very simple things (redefining Int64 to be 'long long' for example).
>>
>> Q2. If I understand Jackdmp's command line parameters, the parameter "-T" makes Jackdmp "temporary". I think this means that if a client launches Jackdmp using the "-T" parameter, Jackdmp should unload itself when there are no more clients connected. Have I understood that correctly?
>
> Yes.
>
>> It's the only thing that doesn't seem to work in my Windows build so I'd like to figure out where I should start looking for the problem.
>>
I'm glad I looked into this. While browsing through the source I came across this function in JackEngine.cpp:-
void JackEngine::ReleaseRefnum(int ref)
{
fClientTable[ref] = NULL;
if (fEngineControl->fTemporary) {
int I;
for (I = REAL_REFNUM; I < CLIENT_NUM; I++) {
if (fClientTable[I])
break;
}
if (I == CLIENT_NUM) {
// last client and temporay case: quit the server
jack_log("JackEngine::ReleaseRefnum server quit");
fEngineControl->fTemporary = false;
#ifndef WIN32
exit(0);
#endif
}
}
}
I assume that if I removed #ifndef WIN32 in the above code, my server would magically unload itself when there are no more clients left - but I'm curious to know why the condition was ever there. Is it still present in the latest code and/or can anyone remember why it's needed?
John
1303119157.31846_0.ltw:2,a <E2BE758B-0597-4D61-969D-3CFF4B0D7C8A at tiscali dot co dot uk>