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

v1.6_develop_rgoose_sntp
Michael Zillgith 3 years ago
parent c035573684
commit d5f2172f93

@ -908,10 +908,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);
@ -930,10 +930,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