diff --git a/src/iec61850/server/impl/ied_server.c b/src/iec61850/server/impl/ied_server.c index 1b804071..c6fdeffc 100644 --- a/src/iec61850/server/impl/ied_server.c +++ b/src/iec61850/server/impl/ied_server.c @@ -811,10 +811,10 @@ IedServer_stopThreadless(IedServer self) void IedServer_lockDataModel(IedServer self) { - Semaphore_wait(self->mmsMapping->isModelLockedMutex); - MmsServer_lockModel(self->mmsServer); + Semaphore_wait(self->mmsMapping->isModelLockedMutex); + self->mmsMapping->isModelLocked = true; Semaphore_post(self->mmsMapping->isModelLockedMutex); @@ -833,10 +833,10 @@ IedServer_unlockDataModel(IedServer self) Semaphore_wait(self->mmsMapping->isModelLockedMutex); - self->mmsMapping->isModelLocked = false; - MmsServer_unlockModel(self->mmsServer); + self->mmsMapping->isModelLocked = false; + Semaphore_post(self->mmsMapping->isModelLockedMutex); }