Now, I haven't done any SLB programming for atleast 10 years, so I could get this all wrong. But AFAIK when an application calls a function in aSLB, the function is run in the context of the calling application. So ifIn this case it must use the caller's apid etc.
Of course, this is a shared library so you can't save stuff like this in local variables in the SLB. If Draconis does this then it's obviously buggy.
pid X calls a function in SLB Y which again calls appl_init(), pid X - not pid Y - becomes an AES client. Take a look at GEMMA, it does exactly this.That ist not done in draconis, else the slb would not call appl_init.
I don't understand what you mean. Calling appl_init() in a SLB is not a problem. But the apid must be saved in/by the calling application, not in a static variable in the SLB itself.
I think you should try GEMMA and it's test-application. If it works without the Draconis-specific hack, then everything's probably OK. If not, something has changed in MiNT or XaAES because this GEMMA-stuff used to work.
Jo Even