By looking into the Newton.h I saw quite a few multithreading related functions and I was wondering how to utilize Newton's multithreading capabilities better.
An (easy) assumption is that NewtonSetThreadsCount will set the number of worker threads. The NewtonUpdate() will distribute the world update across Newton's threads and it will wait for them to finish. NewtonUpdateAsync will fire the world update across the threads and return without waiting. NewtonWaitForUpdateToFinish will wait for the async update.
Now, between NewtonUpdateAsync and NewtonWaitForUpdateToFinish I am not allowed to call other newton functions. Eg I cannot create and delete bodies for example.
Are these assumptions correct? Is there anything else I should know in order to get better performance?