[fpc-pascal] AllocateThreadVars ?

Adriaan van Os adriaan at adriaan.biz
Wed Oct 9 16:39:14 CEST 2024


I have a program on MacOS that calls CoreAudio which calls the application back in a so-called 
AURendererCallback in a separate (com.apple.audio.IOThread.client) thread. This is a pthread 
created by the system software, not by the FreePascal RTL.

In that thread, a FreePascal try except block doesn't catch an exception. A globally installed 
TExceptProc does. if I look in the RTL code, it looks like a thread created with BeginThread does 
some extra things, like calling SysAllocateThreadVars. A comment notes that exception handling 
depends on it.

So, it seems plausible that SysAllocateThreadVars (or the AllocateThreadVars method of the current 
TThreadManager) must be called once for  pthreads created by the system software ? How ? Obviously 
I couldn't use a threadvar that tells me whether AllocateThreadVars has been called already ?

Regards,

Adriaan van Os


More information about the fpc-pascal mailing list