* grp.cc (read_etc_group): Don't copy mutex on fork.
* pwd.cc (read_etc_passwd): Ditto. * autoload.cc (LoadDLLfuncEx): Use LoadDLLprime to initialize DLL specific area.
This commit is contained in:
		| @@ -1,3 +1,10 @@ | ||||
| Sat May 19 01:22:43 2001  Christopher Faylor <cgf@cygnus.com> | ||||
|  | ||||
| 	* grp.cc (read_etc_group): Don't copy mutex on fork. | ||||
| 	* pwd.cc (read_etc_passwd): Ditto. | ||||
| 	* autoload.cc (LoadDLLfuncEx): Use LoadDLLprime to initialize DLL | ||||
| 	specific area. | ||||
|  | ||||
| Fri May 18 10:31:00 2001  Corinna Vinschen <corinna@vinschen.de> | ||||
|  | ||||
| 	* net.cc (wsock_event::wait): Explicitely cancel IO when a signal | ||||
|   | ||||
| @@ -74,15 +74,9 @@ details. */ | ||||
| #define LoadDLLfunc(name, n, dllname) LoadDLLfuncEx (name, n, dllname, 0) | ||||
|  | ||||
| /* Main DLL setup stuff. */ | ||||
| #define LoadDLLfuncEx(name, n, dllname, notimp) __asm__ ("\ | ||||
|   .section	." #dllname "_info,\"w\"		\n\ | ||||
|   .linkonce						\n\ | ||||
|   .long		std_dll_init				\n\ | ||||
|   .long		0					\n\ | ||||
|   .long		-1					\n\ | ||||
|   .long		dll_func_load				\n\ | ||||
|   .asciz	\"" #dllname "\"			\n\ | ||||
| 							\n\ | ||||
| #define LoadDLLfuncEx(name, n, dllname, notimp) \ | ||||
|   LoadDLLprime (dllname, dll_func_load)			\ | ||||
|   __asm__ ("						\n\ | ||||
|   .section	." #dllname "_text,\"wx\"		\n\ | ||||
|   .global	_" mangle (name, n) "			\n\ | ||||
|   .global	_win32_" mangle (name, n) "		\n\ | ||||
|   | ||||
| @@ -140,7 +140,7 @@ read_etc_group () | ||||
|  | ||||
|   strncpy (group_name, "Administrators", sizeof (group_name)); | ||||
|  | ||||
|   static pthread_mutex_t etc_group_mutex = (pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER; | ||||
|   static NO_COPY pthread_mutex_t etc_group_mutex = (pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER; | ||||
|   pthread_mutex_lock (&etc_group_mutex); | ||||
|  | ||||
|   /* if we got blocked by the mutex, then etc_group may have been processed */ | ||||
|   | ||||
| @@ -127,7 +127,7 @@ read_etc_passwd () | ||||
|      * for non-shared mutexs in the future. Also, this function will at most be called | ||||
|      * once from each thread, after that the passwd_state test will succeed | ||||
|      */ | ||||
|     static pthread_mutex_t etc_passwd_mutex = (pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER; | ||||
|     static NO_COPY pthread_mutex_t etc_passwd_mutex = (pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER; | ||||
|     pthread_mutex_lock (&etc_passwd_mutex); | ||||
|  | ||||
|     /* if we got blocked by the mutex, then etc_passwd may have been processed */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user