From: Joschka B. <jbo...@un...> - 2007-05-25 12:20:32
|
Hi all, I'll try to give some more details of my tests with the threaded server below. Jan Murray wrote: > [...] > The internal rendering > seems to work, though. But with 6 local agents connected it doesn't > react to mouse and keyboard any more. :-( > > First, a quick comment on the patch: I noticed that probably an older version of sceneserver.cpp was used, as the patch removes some recent code in SceneServer::ImportScene (namely searching for data files in the local dir _and_ in the pkgdatadir). As I said before, I could patch and compile all files without any problems. The performance increase is terrific! :-D While before I could only use 2 agents at the same time before the simulation would become unusable on my laptop, I could now have 5 agents running in parallel. If I use 6 agents or more, however, I can not use mouse or keyboard anymore, just as Jan noticed above. The rendering was not having any problems though, it was still going very smooth, even with more than 6 agents. Another problem that I had was that sometimes (not often, and non-deterministically), the InitEffector will cause the Server to crash with an ODE internal error (error message something like "dGeom was moved in locked space"). I have never seen this with the non-threaded version so far, so maybe we need a lock somewhere in the InitEffector, too (because it changes the Scene and uses ODE functions). On an Apple Mac I got some other problems, too, that did not occur in Linux: * I can not use any visualization because OpenGL is not thread-safe in MacOS. It seems that maybe two different threads are trying to issue OpenGL commands which does not work with Apple's GL implementation (threads can be used, but only if all the OpenGL commands for a context are issued in the same thread). * Ruby (version 1.8.2) would sometimes get a stack exception when I started several agents (over the network, only the server was running on the Mac). Concerning the development in the CVS, I think we will first merge the projectx branch that Oliver created with the main branch, and then we make a new branch for the threaded version. Do you have any idea about the input problems mentioned above? Cheers, Joschka |