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 -------------------------------------------------- |