Hurd: libc_once_get
This commit is contained in:
parent
37233df9d1
commit
be971a2b1c
@ -1,5 +1,12 @@
|
||||
2012-05-10 Thomas Schwinge <thomas@schwinge.name>
|
||||
|
||||
[BZ #3748]
|
||||
* bits/libc-lock.h (__libc_once_get): New macro.
|
||||
* sysdeps/mach/bits/libc-lock.h: Likewise.
|
||||
* sysdeps/mach/hurd/bits/libc-lock.h: Likewise.
|
||||
* sysdeps/posix/getaddrinfo.c (getaddrinfo): Use __libc_once_get
|
||||
instead of using implementation details.
|
||||
|
||||
* libio/fileops.c: Unconditionally include <kernel-features.h>.
|
||||
* libio/freopen.c: Likewise.
|
||||
* libio/freopen64.c: Likewise.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* libc-internal interface for mutex locks. Stub version.
|
||||
Copyright (C) 1996,97,99,2000-2002,2003 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996-2012 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -97,6 +97,9 @@
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Get once control variable. */
|
||||
#define __libc_once_get(ONCE_CONTROL) \
|
||||
((ONCE_CONTROL) == 1)
|
||||
|
||||
/* Start a critical region with a cleanup function */
|
||||
#define __libc_cleanup_region_start(DOIT, FCT, ARG) \
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-05-10 Thomas Schwinge <thomas@schwinge.name>
|
||||
|
||||
[BZ #3748]
|
||||
* sysdeps/pthread/bits/libc-lockP.h (__libc_once_get): New macro.
|
||||
|
||||
2012-05-09 Chung-Lin Tang <cltang@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
|
||||
|
@ -257,6 +257,8 @@ typedef pthread_key_t __libc_key_t;
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Get once control variable. */
|
||||
#define __libc_once_get(ONCE_CONTROL) ((ONCE_CONTROL) != PTHREAD_ONCE_INIT)
|
||||
|
||||
/* Note that for I/O cleanup handling we are using the old-style
|
||||
cancel handling. It does not have to be integrated with C++ snce
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* libc-internal interface for mutex locks. Mach cthreads version.
|
||||
Copyright (C) 1996,97,98,2000,01, 2002 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996-2012 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -115,6 +115,9 @@ struct __libc_once
|
||||
__libc_lock_unlock (ONCE_CONTROL.lock); \
|
||||
} while (0)
|
||||
|
||||
/* Get once control variable. */
|
||||
#define __libc_once_get(ONCE_CONTROL) ((ONCE_CONTROL).done != 0)
|
||||
|
||||
#ifdef _LIBC
|
||||
/* We need portable names for some functions. E.g., when they are
|
||||
used as argument to __libc_cleanup_region_start. */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* libc-internal interface for mutex locks. Hurd version using Mach cthreads.
|
||||
Copyright (C) 1996,97,98,2000,01, 2002, 2003 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996-2012 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -187,6 +187,9 @@ struct __libc_once
|
||||
__libc_lock_unlock (ONCE_CONTROL.lock); \
|
||||
} while (0)
|
||||
|
||||
/* Get once control variable. */
|
||||
#define __libc_once_get(ONCE_CONTROL) ((ONCE_CONTROL).done != 0)
|
||||
|
||||
#ifdef _LIBC
|
||||
/* We need portable names for some functions. E.g., when they are
|
||||
used as argument to __libc_cleanup_region_start. */
|
||||
|
@ -2604,7 +2604,7 @@ getaddrinfo (const char *name, const char *service,
|
||||
__libc_lock_define_initialized (static, lock);
|
||||
|
||||
__libc_lock_lock (lock);
|
||||
if (old_once && gaiconf_reload_flag)
|
||||
if (__libc_once_get (old_once) && gaiconf_reload_flag)
|
||||
gaiconf_reload ();
|
||||
qsort_r (order, nresults, sizeof (order[0]), rfc3484_sort, &src);
|
||||
__libc_lock_unlock (lock);
|
||||
|
Loading…
x
Reference in New Issue
Block a user