From 6a2db3fe46361efb0c7432e11c1697d4349a780b Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Tue, 31 Mar 2020 12:49:48 +0200 Subject: [PATCH] - IEC 61850 server: fixed bug in single threaded mode (windows) --- src/iec61850/server/impl/ied_server.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/iec61850/server/impl/ied_server.c b/src/iec61850/server/impl/ied_server.c index d377dc11..83e5e2ab 100644 --- a/src/iec61850/server/impl/ied_server.c +++ b/src/iec61850/server/impl/ied_server.c @@ -517,11 +517,6 @@ IedServer_destroy(IedServer self) #endif } - MmsServer_destroy(self->mmsServer); - - if (self->localIpAddress != NULL) - GLOBAL_FREEMEM(self->localIpAddress); - #if ((CONFIG_MMS_SINGLE_THREADED == 1) && (CONFIG_MMS_THREADLESS_STACK == 0)) if (self->serverThread) @@ -529,6 +524,11 @@ IedServer_destroy(IedServer self) #endif + MmsServer_destroy(self->mmsServer); + + if (self->localIpAddress != NULL) + GLOBAL_FREEMEM(self->localIpAddress); + MmsMapping_destroy(self->mmsMapping); LinkedList_destroyDeep(self->clientConnections, (LinkedListValueDeleteFunction) private_ClientConnection_destroy); @@ -639,9 +639,10 @@ IedServer_stop(IedServer self) MmsMapping_stopEventWorkerThread(self->mmsMapping); #if (CONFIG_MMS_SINGLE_THREADED == 1) - MmsServer_stopListeningThreadless(self->mmsServer); Thread_destroy(self->serverThread); self->serverThread = NULL; + + MmsServer_stopListeningThreadless(self->mmsServer); #else MmsServer_stopListening(self->mmsServer); #endif