Merge branch 'release/3.0.1' into develop
Params with default value are optional by default
SemaphoreSlim at least for Windows
making that arg optinal makes no sense
we have a typedef for Callbacks
Atomic classes were stupid; introduced the ILock interface which should make it easier to maintain Lock implementations
refactored the whole library
release notes
Merge branch 'release/4.0.0'