mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-09 23:00:07 +00:00
Update.
2000-06-04 Kaz Kylheku <kaz@ashi.footprints.net> Lock for stdio stream list becomes global, for use in LinuxThreads. * libio/genops.c (_IO_iter_begin, _IO_iter_end, _IO_iter_next, _IO_iter_file, _IO_list_lock, _IO_list_unlock, _IO_list_resetlock): New interface for iterating global list of streams without accessing the _IO_list_all global variable, and for manipulating the lock which protects this list. * libio/libioP.h: Likewise. * libio/Version: Add entries for the new functions. * libio/libioP.h (_IO_ITER): New typedef, just an alias for pointer to _IO_FILE.
This commit is contained in:
parent
ce177a8416
commit
3fc9ca4e38
15
ChangeLog
15
ChangeLog
@ -1,3 +1,18 @@
|
||||
2000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
|
||||
|
||||
Lock for stdio stream list becomes global, for use in LinuxThreads.
|
||||
|
||||
* libio/genops.c (_IO_iter_begin, _IO_iter_end,
|
||||
_IO_iter_next, _IO_iter_file, _IO_list_lock, _IO_list_unlock,
|
||||
_IO_list_resetlock): New interface for iterating global list of
|
||||
streams without accessing the _IO_list_all global variable,
|
||||
and for manipulating the lock which protects this list.
|
||||
* libio/libioP.h: Likewise.
|
||||
* libio/Version: Add entries for the new functions.
|
||||
|
||||
* libio/libioP.h (_IO_ITER): New typedef, just an alias for
|
||||
pointer to _IO_FILE.
|
||||
|
||||
2000-06-07 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* locale/programs/ld-ctype.c (set_class_defaults): Several uses of
|
||||
|
@ -104,6 +104,10 @@ libc {
|
||||
# functions used in libstdc++
|
||||
_IO_fgetpos; _IO_fgetpos64; _IO_fsetpos; _IO_fsetpos64;
|
||||
|
||||
# LinuxThreads uses this protected interface
|
||||
_IO_iter_begin; _IO_iter_end; _IO_iter_next; _IO_iter_file;
|
||||
_IO_list_lock; _IO_list_unlock; _IO_list_resetlock;
|
||||
|
||||
# f*
|
||||
fgetpos; fgetpos64; fgetwc; fgetwc_unlocked; fgetws; fgetws_unlocked;
|
||||
fputwc; fputwc_unlocked; fputws; fputws_unlocked; fsetpos; fsetpos64;
|
||||
|
@ -1028,6 +1028,50 @@ _IO_default_imbue (fp, locale)
|
||||
{
|
||||
}
|
||||
|
||||
_IO_ITER
|
||||
_IO_iter_begin()
|
||||
{
|
||||
return _IO_list_all;
|
||||
}
|
||||
|
||||
_IO_ITER
|
||||
_IO_iter_end()
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
_IO_ITER
|
||||
_IO_iter_next(iter)
|
||||
_IO_ITER iter;
|
||||
{
|
||||
return iter->_chain;
|
||||
}
|
||||
|
||||
_IO_FILE *
|
||||
_IO_iter_file(iter)
|
||||
_IO_ITER iter;
|
||||
{
|
||||
return iter;
|
||||
}
|
||||
|
||||
void
|
||||
_IO_list_lock()
|
||||
{
|
||||
_IO_lock_lock (list_all_lock);
|
||||
}
|
||||
|
||||
void
|
||||
_IO_list_unlock()
|
||||
{
|
||||
_IO_lock_unlock (list_all_lock);
|
||||
}
|
||||
|
||||
void
|
||||
_IO_list_resetlock()
|
||||
{
|
||||
_IO_lock_init (list_all_lock);
|
||||
}
|
||||
|
||||
|
||||
#ifdef TODO
|
||||
#if defined(linux)
|
||||
|
@ -313,6 +313,10 @@ struct _IO_FILE_plus
|
||||
const struct _IO_jump_t *vtable;
|
||||
};
|
||||
|
||||
/* Iterator type for walking global linked list of _IO_FILE objects. */
|
||||
|
||||
typedef _IO_FILE *_IO_ITER;
|
||||
|
||||
/* Generic functions */
|
||||
|
||||
extern void _IO_switch_to_main_get_area __P ((_IO_FILE *));
|
||||
@ -351,6 +355,17 @@ extern int _IO_wmarker_delta __P ((struct _IO_marker *));
|
||||
extern int _IO_seekmark __P ((_IO_FILE *, struct _IO_marker *, int));
|
||||
extern int _IO_seekwmark __P ((_IO_FILE *, struct _IO_marker *, int));
|
||||
|
||||
/* Functions for iterating global list and dealing with
|
||||
its lock */
|
||||
|
||||
extern _IO_ITER _IO_iter_begin __P ((void));
|
||||
extern _IO_ITER _IO_iter_end __P ((void));
|
||||
extern _IO_ITER _IO_iter_next __P ((_IO_ITER));
|
||||
extern _IO_FILE *_IO_iter_file __P ((_IO_ITER));
|
||||
extern void _IO_list_lock __P ((void));
|
||||
extern void _IO_list_unlock __P ((void));
|
||||
extern void _IO_list_resetlock __P ((void));
|
||||
|
||||
/* Default jumptable functions. */
|
||||
|
||||
extern int _IO_default_underflow __P ((_IO_FILE *));
|
||||
|
Loading…
Reference in New Issue
Block a user