- IED server: fixed - possible deadlock when IedServer_lockDataModel is used from multiple threads (LIB61850-352)

pull/410/head
Michael Zillgith 3 years ago
parent 7c06680cba
commit 219111eef1

@ -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);
}

Loading…
Cancel
Save