summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Lotterbach <timo.lotterbach@bmw-carit.de>2012-10-25 05:23:40 -0700
committerMichael Schuldt <michael.schuldt@bmw.de>2012-10-26 09:14:02 +0300
commit5dca78844c5417e0a1ddc1c7ecf7a1d52851f224 (patch)
tree6822f7629640cabbaa4b694911ac495664ffb99c
parent8ef4c0c9073b3b6a7578cffd119fdf0be7963005 (diff)
downloadlayer_management-5dca78844c5417e0a1ddc1c7ecf7a1d52851f224.tar.gz
ilmClient: added detection if ilm_init() was called multiple times
-rw-r--r--LayerManagerClient/ilmClient/src/generic_ilm_client.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/LayerManagerClient/ilmClient/src/generic_ilm_client.c b/LayerManagerClient/ilmClient/src/generic_ilm_client.c
index da69878..39ad26e 100644
--- a/LayerManagerClient/ilmClient/src/generic_ilm_client.c
+++ b/LayerManagerClient/ilmClient/src/generic_ilm_client.c
@@ -63,6 +63,8 @@ mqd_t incomingMqWrite;
mqd_t notificationMqRead;
mqd_t notificationMqWrite;
+static t_ilm_bool gInitialized = ILM_FALSE;
+
//=============================================================================
// notification management
//=============================================================================
@@ -400,6 +402,12 @@ ilmErrorTypes ilm_init()
{
ilmErrorTypes result = ILM_FAILED;
+ if (gInitialized)
+ {
+ printf("ilm_init() was called, but ilmClientLib is already initialized. returning success, but initialization was skipped this time.\n");
+ return ILM_SUCCESS;
+ }
+
initNotificationCallbacks();
if (loadIpcModule(&gIpcModule))
@@ -491,6 +499,8 @@ ilmErrorTypes ilm_init()
gIpcModule.destroyMessage(command);
}
+ gInitialized = (result == ILM_SUCCESS) ? ILM_TRUE : ILM_FALSE;
+
return result;
}
@@ -535,6 +545,8 @@ ilmErrorTypes ilm_destroy()
mq_close(incomingMqRead);
mq_close(incomingMqWrite);
+ gInitialized = ILM_FALSE;
+
return ILM_SUCCESS;
}