mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 19:00:07 +00:00
* nss/getXXbyYY_r.c: Include atomic.h.
(INTERNAL (REENTRANT_NAME)): Write startp after start_fct, add atomic_write_barrier () in between.
This commit is contained in:
parent
a12dcecc50
commit
4490149516
@ -1,5 +1,9 @@
|
|||||||
2006-12-19 Jakub Jelinek <jakub@redhat.com>
|
2006-12-19 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* nss/getXXbyYY_r.c: Include atomic.h.
|
||||||
|
(INTERNAL (REENTRANT_NAME)): Write startp after start_fct,
|
||||||
|
add atomic_write_barrier () in between.
|
||||||
|
|
||||||
* stdlib/Makefile (tests): Add tst-makecontext.
|
* stdlib/Makefile (tests): Add tst-makecontext.
|
||||||
* stdlib/tst-makecontext.c: New test.
|
* stdlib/tst-makecontext.c: New test.
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1996-2002, 2003, 2004 Free Software Foundation, Inc.
|
/* Copyright (C) 1996-2002, 2003, 2004, 2006 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
@ -18,6 +18,7 @@
|
|||||||
02111-1307 USA. */
|
02111-1307 USA. */
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <atomic.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include "nsswitch.h"
|
#include "nsswitch.h"
|
||||||
@ -173,9 +174,6 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
|
|||||||
startp = (service_user *) -1l;
|
startp = (service_user *) -1l;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
startp = nip;
|
|
||||||
start_fct = fct.l;
|
|
||||||
|
|
||||||
#ifdef NEED__RES
|
#ifdef NEED__RES
|
||||||
/* The resolver code will really be used so we have to
|
/* The resolver code will really be used so we have to
|
||||||
initialize it. */
|
initialize it. */
|
||||||
@ -190,6 +188,11 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
|
|||||||
if (!_res_hconf.initialized)
|
if (!_res_hconf.initialized)
|
||||||
_res_hconf_init ();
|
_res_hconf_init ();
|
||||||
#endif /* need _res_hconf */
|
#endif /* need _res_hconf */
|
||||||
|
|
||||||
|
start_fct = fct.l;
|
||||||
|
/* Make sure start_fct is written before startp. */
|
||||||
|
atomic_write_barrier ();
|
||||||
|
startp = nip;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user