I think you should say this somewhere
You're absolutely right. We could never think of a place to put this that customers would read it. That's the tricky part. Thus, we'll just make TA thread safe.
, especially as the Windows library is multi-threaded, I assumed that Mac library was thread-safe
The Windows version of TurboActivate isn't thread safe either. No platform is -- not yet.
By the way, why don't you make it thread-safe on Mac too ?
All platforms will be thread safe after the TurboFloat release. Likely TA 3.4.x.
However, please double check this crash on 64 bits applications : I asked my users to run my product in 32 bits mode, and the crash didn't occur any more.
I did double check it. ExtendTrial() never calls SetCurrentProduct() -- in other words the stack trace posted is impossible if TurboActivate is called from a single thread. A well timed SetCurrentProduct() from another thread can cause a crash if you're in the middle of another call.
Also, 32-bit isn't crashing because this is a timing issue. In other words, this crash can happen on 32-bit too, you're just not seeing it because of lucky timing.