Hi Hoa,

Do we need the svc_to_mds_info to be tls? I used it in the sample added to 
ticket
to reduce number of helgrind warnings when I verified safe_printf and 
safe_fflush. 
It should have been removed in the sample, as it was not fully verified.
/Thanks HansN 


-----Original Message-----
From: Hoa Le [mailto:hoa...@dektech.com.au] 
Sent: den 27 mars 2018 03:47
To: Anders Widell <anders.wid...@ericsson.com>; Hans Nordebäck 
<hans.nordeb...@ericsson.com>
Cc: opensaf-devel@lists.sourceforge.net; Hoa Le <hoa...@dektech.com.au>
Subject: [PATCH 1/1] mds: improve thread safety in mdstest - part 2 [#2746]

- Use __thread if _Thread_local is not supported in GCC version lower than 4.9
---
 src/mds/apitest/mdstipc.h      | 6 ++++++
 src/mds/apitest/mdstipc_api.c  | 2 +-
 src/mds/apitest/mdstipc_conf.c | 2 +-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/mds/apitest/mdstipc.h b/src/mds/apitest/mdstipc.h index 
01b58c4..f67890a 100644
--- a/src/mds/apitest/mdstipc.h
+++ b/src/mds/apitest/mdstipc.h
@@ -21,6 +21,12 @@
 #include "base/ncssysf_tsk.h"
 #include "base/ncssysf_def.h"
 
+#if !defined(_Thread_local)
+#define MDS_THREAD_LOCAL __thread
+#else
+#define MDS_THREAD_LOCAL _Thread_local
+#endif
+
 typedef struct tet_task {
   NCS_OS_CB entry;
   void *arg;
diff --git a/src/mds/apitest/mdstipc_api.c b/src/mds/apitest/mdstipc_api.c 
index 669c770..2ff8238 100644
--- a/src/mds/apitest/mdstipc_api.c
+++ b/src/mds/apitest/mdstipc_api.c
@@ -33,7 +33,7 @@ static MDS_CLIENT_MSG_FORMAT_VER gl_set_msg_fmt_ver;
 
 MDS_SVC_ID svc_ids[3] = {2006, 2007, 2008};
 
-_Thread_local NCSMDS_INFO svc_to_mds_info;
+MDS_THREAD_LOCAL NCSMDS_INFO svc_to_mds_info;
 pthread_mutex_t safe_printf_mutex = PTHREAD_MUTEX_INITIALIZER;  
pthread_mutex_t gl_mutex = PTHREAD_MUTEX_INITIALIZER;
 
diff --git a/src/mds/apitest/mdstipc_conf.c b/src/mds/apitest/mdstipc_conf.c 
index c2d7d01..d6ee48e 100644
--- a/src/mds/apitest/mdstipc_conf.c
+++ b/src/mds/apitest/mdstipc_conf.c
@@ -25,7 +25,7 @@ extern int fill_syncparameters(int);  extern uint32_t 
mds_vdest_tbl_get_role(MDS_VDEST_ID vdest_id, V_DEST_RL *role);  extern 
pthread_mutex_t gl_mds_library_mutex;
 
-extern _Thread_local NCSMDS_INFO svc_to_mds_info;
+extern MDS_THREAD_LOCAL NCSMDS_INFO svc_to_mds_info;
 extern pthread_mutex_t safe_printf_mutex;  extern pthread_mutex_t gl_mutex;
 
--
2.7.4


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to