diff --git a/bad-mutex/BadMutex.hpp b/bad-mutex/BadMutex.hpp index 4cd2aeb..7525be3 100644 --- a/bad-mutex/BadMutex.hpp +++ b/bad-mutex/BadMutex.hpp @@ -4,6 +4,7 @@ class BadMutex { public: + const static unsigned int version = 0x000100; static BadMutex& getInstance( void ); void lock( void ); void unlock( void ); diff --git a/bad-mutex/BadMutex.moon b/bad-mutex/BadMutex.moon index 9575ab8..ff072e1 100644 --- a/bad-mutex/BadMutex.moon +++ b/bad-mutex/BadMutex.moon @@ -14,6 +14,11 @@ for path in *libraryPaths assert success, BM +BMVersion = 0x000100 +libVer = BM.version! +if libVer < BMVersion or math.floor(libVer/65536%256) > math.floor(BMVersion/65536%256) + error "Library version mismatch. Wanted #{BMVersion}, got #{libVer}." + return { lock: -> BM.lock! @@ -23,4 +28,6 @@ return { unlock: -> BM.unlock! + + version: 0x000100 } diff --git a/bad-mutex/BadMutexC.cpp b/bad-mutex/BadMutexC.cpp index 3ef620e..d1befe7 100644 --- a/bad-mutex/BadMutexC.cpp +++ b/bad-mutex/BadMutexC.cpp @@ -13,4 +13,8 @@ extern "C" { EXPORT void unlock( void ) { BadMutex::getInstance().unlock(); } + + EXPORT unsigned int version( void ) { + return BadMutex::version; + } } diff --git a/bad-mutex/BadMutexC.h b/bad-mutex/BadMutexC.h index 6b0f289..5b6e1d7 100644 --- a/bad-mutex/BadMutexC.h +++ b/bad-mutex/BadMutexC.h @@ -14,6 +14,7 @@ extern "C" { EXPORT void lock( void ); EXPORT bool try_lock( void ); EXPORT void unlock( void ); +EXPORT unsigned int version( void ); #ifdef __cplusplus }