If you do rely on Garbage Collection in your DLL, then the GC only works if you initialized it in the DLL - which requires the (one time only) call to InitBRL().
As you do not know which function in your DLL is called as first, I did a "if not initBRLdone then init()" with "init()" doing "initBRLDone = True" and "InitBRL()".
That way each of my functions was able to rely on the GC cleaning up stuff and not leaking memory.
bye
Ron