/[radius]/radius/lib/getgr.c
ViewVC logotype

Diff of /radius/lib/getgr.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by gray, Sat Dec 21 14:10:03 2002 UTC revision 1.4 by gray, Fri Apr 18 05:27:09 2003 UTC
# Line 20  Line 20 
20  #endif  #endif
21  #include <sys/types.h>  #include <sys/types.h>
22  #include <grp.h>  #include <grp.h>
 #include <pthread.h>  
23  #include <mem.h>  #include <mem.h>
24    
25  static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;  LOCK_DECLARE(lock)
26    
27  struct group *  struct group *
28  store_group(grp)  store_group(grp)
# Line 74  rad_getgrnam(name) Line 73  rad_getgrnam(name)
73  {  {
74          struct group *grp;          struct group *grp;
75    
76          pthread_cleanup_push((void (*)(void*))pthread_mutex_unlock, &mutex);          LOCK_SET(lock);
         pthread_mutex_lock(&mutex);  
77          grp = store_group(getgrnam(name));          grp = store_group(getgrnam(name));
78          pthread_cleanup_pop(1);          LOCK_RELEASE(lock);
79          return grp;          return grp;
80  }  }

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26