mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
1999-07-09 Ulrich Drepper <drepper@cygnus.com> * stdio-common/vfprintf.c (buffered_vfprintf): Add locking.
This commit is contained in:
@ -1,3 +1,7 @@
|
|||||||
|
1999-07-09 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* stdio-common/vfprintf.c (buffered_vfprintf): Add locking.
|
||||||
|
|
||||||
1999-07-09 H.J. Lu <hjl@gnu.org>
|
1999-07-09 H.J. Lu <hjl@gnu.org>
|
||||||
|
|
||||||
* Versions.def (GLIBC_2.1.2): Added.
|
* Versions.def (GLIBC_2.1.2): Added.
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
1999-07-09 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* oldsemaphore.c (sem_compare_and_swap): Fix use of compare and
|
||||||
|
swap function.
|
||||||
|
|
||||||
1999-07-09 Cristian Gafton <gafton@redhat.com>
|
1999-07-09 Cristian Gafton <gafton@redhat.com>
|
||||||
|
|
||||||
* Makefile (libpthread-routines): Add oldsemaphore routine.
|
* Makefile (libpthread-routines): Add oldsemaphore routine.
|
||||||
|
@ -37,7 +37,7 @@ typedef struct {
|
|||||||
|
|
||||||
static inline int sem_compare_and_swap(old_sem_t *sem, long oldval, long newval)
|
static inline int sem_compare_and_swap(old_sem_t *sem, long oldval, long newval)
|
||||||
{
|
{
|
||||||
return __pthread_compare_and_swap(&sem->sem_status, oldval, newval, &sem->sem_spinlock);
|
return compare_and_swap(&sem->sem_status, oldval, newval, &sem->sem_spinlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The state of a semaphore is represented by a long int encoding
|
/* The state of a semaphore is represented by a long int encoding
|
||||||
@ -212,4 +212,3 @@ symbol_version (__old_sem_post, sem_post, GLIBC_2.0);
|
|||||||
symbol_version (__old_sem_getvalue, sem_getvalue, GLIBC_2.0);
|
symbol_version (__old_sem_getvalue, sem_getvalue, GLIBC_2.0);
|
||||||
symbol_version (__old_sem_destroy, sem_destroy, GLIBC_2.0);
|
symbol_version (__old_sem_destroy, sem_destroy, GLIBC_2.0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1886,6 +1886,10 @@ buffered_vfprintf (register _IO_FILE *s, const CHAR_T *format,
|
|||||||
/* Now print to helper instead. */
|
/* Now print to helper instead. */
|
||||||
result = vfprintf (hp, format, args);
|
result = vfprintf (hp, format, args);
|
||||||
|
|
||||||
|
/* Lock stream. */
|
||||||
|
__libc_cleanup_region_start ((void (*) (void *)) &_IO_funlockfile, s);
|
||||||
|
_IO_flockfile (s);
|
||||||
|
|
||||||
/* Now flush anything from the helper to the S. */
|
/* Now flush anything from the helper to the S. */
|
||||||
#ifdef COMPILE_WPRINTF
|
#ifdef COMPILE_WPRINTF
|
||||||
if ((to_flush = (hp->_wide_data->_IO_write_ptr
|
if ((to_flush = (hp->_wide_data->_IO_write_ptr
|
||||||
@ -1893,16 +1897,20 @@ buffered_vfprintf (register _IO_FILE *s, const CHAR_T *format,
|
|||||||
{
|
{
|
||||||
if ((int) _IO_sputn (s, hp->_wide_data->_IO_write_base, to_flush)
|
if ((int) _IO_sputn (s, hp->_wide_data->_IO_write_base, to_flush)
|
||||||
!= to_flush)
|
!= to_flush)
|
||||||
return -1;
|
result = -1;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if ((to_flush = hp->_IO_write_ptr - hp->_IO_write_base) > 0)
|
if ((to_flush = hp->_IO_write_ptr - hp->_IO_write_base) > 0)
|
||||||
{
|
{
|
||||||
if ((int) _IO_sputn (s, hp->_IO_write_base, to_flush) != to_flush)
|
if ((int) _IO_sputn (s, hp->_IO_write_base, to_flush) != to_flush)
|
||||||
return -1;
|
result = -1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Unlock the stream. */
|
||||||
|
_IO_funlockfile (s);
|
||||||
|
__libc_cleanup_region_end (0);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user