2003-09-22  Philip Blundell  <philb@gnu.org>

	* forward.c: Add _pthread_cleanup_push, _pthread_cleanup_pop.
	* sysdeps/pthread/pthread-functions.h (struct pthread_functions):
	Likewise.
	* pthread.c (__pthread_elements): Initialise these new elements.
	* sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Use
	__libc_maybe_call.
	(__libc_cleanup_pop): Likewise.
This commit is contained in:
Ulrich Drepper 2003-09-23 04:41:29 +00:00
parent 365b16029b
commit 571f2090f8
9 changed files with 47 additions and 18 deletions

View File

@ -1,3 +1,13 @@
2003-09-22 Philip Blundell <philb@gnu.org>
* forward.c: Add _pthread_cleanup_push, _pthread_cleanup_pop.
* sysdeps/pthread/pthread-functions.h (struct pthread_functions):
Likewise.
* pthread.c (__pthread_elements): Initialise these new elements.
* sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Use
__libc_maybe_call.
(__libc_cleanup_pop): Likewise.
2003-09-22 Jakub Jelinek <jakub@redhat.com>
* attr.c: Include stdlib.h.

View File

@ -173,3 +173,7 @@ FORWARD (pthread_setcancelstate, (int state, int *oldstate), (state, oldstate),
0)
FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
FORWARD2 (_pthread_cleanup_push, void, (struct _pthread_cleanup_buffer * buffer, void (*routine)(void *), void * arg), (buffer, routine, arg), return)
FORWARD2 (_pthread_cleanup_pop, void, (struct _pthread_cleanup_buffer * buffer, int execute), (buffer, execute), return)

View File

@ -279,7 +279,9 @@ struct pthread_functions __pthread_functions =
.ptr_pthread_cleanup_upto = __pthread_cleanup_upto,
.ptr_pthread_sigaction = __pthread_sigaction,
.ptr_pthread_sigwait = __pthread_sigwait,
.ptr_pthread_raise = __pthread_raise
.ptr_pthread_raise = __pthread_raise,
.ptr__pthread_cleanup_push = _pthread_cleanup_push,
.ptr__pthread_cleanup_pop = _pthread_cleanup_pop
};
#ifdef SHARED
# define ptr_pthread_functions &__pthread_functions

View File

@ -265,18 +265,12 @@ typedef pthread_key_t __libc_key_t;
}
#define __libc_cleanup_push(fct, arg) \
{ struct _pthread_cleanup_buffer _buffer; \
int _avail = _pthread_cleanup_push != NULL; \
if (_avail) { \
_pthread_cleanup_push (&_buffer, (fct), (arg)); \
}
{ struct _pthread_cleanup_buffer _buffer; \
__libc_maybe_call (_pthread_cleanup_push, (&_buffer, (fct), (arg)), 0)
#define __libc_cleanup_pop(execute) \
if (_avail) { \
_pthread_cleanup_pop (&_buffer, execute); \
} \
}
__libc_maybe_call (_pthread_cleanup_pop, (&_buffer, execute), 0); \
}
/* Create thread-specific key. */
#define __libc_key_create(KEY, DESTRUCTOR) \

View File

@ -83,6 +83,11 @@ struct pthread_functions
int (*ptr_pthread_raise) (int sig);
int (*ptr___pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *,
const struct timespec *);
void (*ptr__pthread_cleanup_push) (struct _pthread_cleanup_buffer * buffer,
void (*routine)(void *), void * arg);
void (*ptr__pthread_cleanup_pop) (struct _pthread_cleanup_buffer * buffer,
int execute);
};
/* Variable in libc.so. */

View File

@ -1,3 +1,17 @@
2003-09-21 Jordi Mallach <jordi@gnu.org>
* locales/ca_ES: Fix mon_grouping, int_frac_digits and frac_digits
values.
* locales/eu_ES: Fix int_frac_digits and frac_digits values.
* locales/gl_ES: Likewise.
2003-09-21 Jordi Mallach <jordi@gnu.org>
* locales/ca_ES: Fix mon_grouping, int_frac_digits and frac_digits
values.
* locales/eu_ES: Fix int_frac_digits and frac_digits values.
* locales/gl_ES: Likewise.
2003-09-17 Ulrich Drepper <drepper@redhat.com>
* locales/lo_LA: Fix duplicated collation entries.

View File

@ -2124,11 +2124,11 @@ int_curr_symbol "<U0045><U0055><U0052><U0020>"
currency_symbol "<U20AC>"
mon_decimal_point "<U002C>"
mon_thousands_sep "<U002E>"
mon_grouping 2;3
mon_grouping 3;3
positive_sign ""
negative_sign "<U002D>"
int_frac_digits 0
frac_digits 0
int_frac_digits 2
frac_digits 2
p_cs_precedes 1
p_sep_by_space 1
n_cs_precedes 1

View File

@ -71,8 +71,8 @@ mon_thousands_sep "<U002E>"
mon_grouping 3;3
positive_sign ""
negative_sign "<U002D>"
int_frac_digits 0
frac_digits 0
int_frac_digits 2
frac_digits 2
p_cs_precedes 1
p_sep_by_space 1
n_cs_precedes 1

View File

@ -67,8 +67,8 @@ mon_thousands_sep "<U002E>"
mon_grouping 3;3
positive_sign ""
negative_sign "<U002D>"
int_frac_digits 0
frac_digits 0
int_frac_digits 2
frac_digits 2
p_cs_precedes 1
p_sep_by_space 1
n_cs_precedes 1