add a simple ObjectPool
update MutexLocker to template< class> LockGuard
Mutex && RWMutex