[rtems commit] libcsupport: Use pthread_once()

Sebastian Huber sebh at rtems.org
Thu Nov 20 13:53:25 UTC 2014


Module:    rtems
Branch:    master
Commit:    80055514bbe2d79268ea3987751cd01ddb711123
Changeset: http://git.rtems.org/rtems/commit/?id=80055514bbe2d79268ea3987751cd01ddb711123

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Nov 14 11:09:39 2014 +0100

libcsupport: Use pthread_once()

---

 cpukit/libcsupport/src/pwdgrp.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/cpukit/libcsupport/src/pwdgrp.c b/cpukit/libcsupport/src/pwdgrp.c
index d8e1947..c10cbab 100644
--- a/cpukit/libcsupport/src/pwdgrp.c
+++ b/cpukit/libcsupport/src/pwdgrp.c
@@ -31,22 +31,21 @@
 #include <string.h>
 #include <limits.h>
 #include <ctype.h>
+#include <pthread.h>
 
 #include <rtems/seterr.h>
 
 #include "pwdgrp.h"
 
+static pthread_once_t pwdgrp_once = PTHREAD_ONCE_INIT;
+
 /**
  *  Initialize useable but dummy databases
  */
-void _libcsupport_pwdgrp_init(void)
+static void pwdgrp_init(void)
 {
   FILE *fp;
-  static char etc_passwd_initted = 0;
 
-  if (etc_passwd_initted)
-    return;
-  etc_passwd_initted = 1;
   mkdir("/etc", 0777);
 
   /*
@@ -76,6 +75,11 @@ void _libcsupport_pwdgrp_init(void)
   }
 }
 
+void _libcsupport_pwdgrp_init(void)
+{
+  pthread_once(&pwdgrp_once, pwdgrp_init);
+}
+
 /**
  *  Extract a string value from the database
  */



More information about the vc mailing list