Hi all,
At last, I finished the first version of timer. The main work I did are:
* Spread the Run() function to different threads (One thread per
SimControlNode)
* Schedule the threads by interval time of SimControlNodes
More information see the pdf I attached, please.
My work are based on rcssserver3d-0.5.3.
The patch I attached is suited to rcssserver3d-0.5.3.
And you can get the whole package from
http://xuyuan.cn.googlepages.com/rcssserver3d-0.5.3-timer-rc1.tar.gz
Although I have tested the code in 4 differnet computers, but I am not
sure it is bug-free.
And it can not works in old version Mesa.
If you have any problem while using the timer, please tell me. And any
comment is welcome.
I also list TODO below:
* In order to link the boost-thread library, I added -lboost_thread-mt
to LDADD in Makefile.am.
This is not a good solution, it can not find the library when the
library named -lboost_thread-gcc-mt,
and there are some warning while running configure. but I do not know
how to solve it.
* I am not sure the OpenGL library is thread safe.
Because it can not work with Mesa-6.4.1, it can work with Mesa-6.5.21
and ATI fglrx 8.31.5 .
I checked the ChanegeLog of Mesa, there are some bug-fixes of thread
safe in Mesa-6.5
* Is the XThreadInit() needed? Note that the all OpenGL function are
called in one thread.
* I write some ugly code to make the AgentControl loop in the main
thread, hwo can the Ruby be called in new thread?
* I think we should implement the sense and act latency in the next step, right?
--
Best wishes!
Xu Yuan
School of Automation
Southeast University, Nanjing, China
mail: xuy...@gm...
xy...@ya...
web: http://xuyuan.cn.googlepages.com
--------------------------------------------------
|