So one thing that bothers me now, is that there we dont have enough rules about what parts of code should run in which thread. Some parts do have this distinction(like all CEGUI stuff should be wrapped inside m_renderThreadService), but other important stuff, like GameObject and GameClient/Server classes don't have any mechanisms to control in which thread their functions are being run in.
And that can lead to all sorts of problems and unexplained behaviour.
So one thing that bothers me now, is that there we dont have enough rules about what parts of code should run in which thread. Some parts do have this distinction(like all CEGUI stuff should be wrapped inside m_renderThreadService), but other important stuff, like GameObject and GameClient/Server classes don't have any mechanisms to control in which thread their functions are being run in.
And that can lead to all sorts of problems and unexplained behaviour.