|
From: Yuan X. <xuy...@gm...> - 2008-03-09 08:49:27
|
Hi Hedayat and all,
>
> Yes :(. But Mesa might be thread safe now. Since I've installed nvidia
> binary drivers, simspark uses nvidia OpenGL libraries instead of using Mesa.
> So, I can't say anything about mesa, but nvidia opengl is not thread safe.
>
The rcssserver3d-0.5.6 can run multi-threads in my computer, it does
not need to call opengl in the main thread. but the cvs head code
can't.
It is very strange, so I decide to look into this problem.
Because there are too many differences between cvs head and 0.5.6,
I copy the barrier implementation to the rcssserver3d-0.5.6,
then it works! while calling opengl in a new thread.
I attached the testing server to this mail, could you test it in your system?
So, the problem may caused by other changes relative to opengl,
I tested and compared the of functions in class rendercontrol and
rendernode, they should be OK.
Thus, I think the problem may caused by the initialization of opengl,
but the ruby scripts are changed a lot, I do not have time to trace them now.
>
> The interesting (not much!) point is that I have not encountered any
> problems by calling mSceneServer->PrePhysicsUpdate() in
> parallel till now! Is there any conflicts between
> mSceneServer->PrePhysicsUpdate() and EndCycle() functions
> in the current code?!
>
I am not sure, but they may conflict after future changing.
I changes a little with your code.( See the package attached.)
I hope it would be OK.
There is another issue should be in mind is that
the multi-threads increase the sense act latency,
it makes agent behavior unlike in the singled-thread.
I think this will make teams in trouble while changing from
singled-thread to multi-threads.
What do you think about it?
--
Best wishes!
Xu Yuan
School of Automation
Southeast University, Nanjing, China
mail: xuy...@gm...
xy...@ya...
web: http://xuyuan.cn.googlepages.com
--------------------------------------------------
|