~ sync with upstream
~ fix warnings
+ global namespace prefix
~ check joinable() before join()
~ sync with scx lib
~ more strict with compiler option
- deprecate SoftSemVar