unlock always returns true
refactor Mutex/ScopedLock/Condition and use std::thread if LIBJ_USE_CXX11 is ON