09-07-2014, 02:24 AM
Protocol is problematic because we also want transparent protocol versioning. As for API consistancy, I'm planing a major revamp of certain bits of the API once c++11 comes on-line, particularly the API calls that are based around functors. I view threading problems as a subclass of API problems. Whilst I don't think we can hide it completely I think we can separate it in to functions that can be called from the tick thread only, versus everything else. It then becomes a matter of documenting which hooks must be thread safe versus those that can be called from the tick thread only. We can then also add a small check using thread local storage to ensure tick thread functions are only called from the tick thread.