* linux-nat.c (debug_linux_nat_async): Delete.
Replace all references to use debug_linux_nat instead. (show_debug_linux_nat_async): Delete. (sigchld_handler): Call ui_file_write_async_safe instead of fprintf_unfiltered. (_initialize_linux_nat): Remove `set debug lin-lwp-async'. * ui-file.c (struct ui_file): New member to_write_async_safe. (null_file_write_async_safe): New function. (ui_file_write_async_safe): New function. (set_ui_file_write_async_safe): New function. (ui_file_new): Initialize to_write_async_safe. (stdio_file_write_async_safe): New function. (struct stdio_file): New member fd. (stdio_file_new): Initialize to_write_async_safe, fd. (stdio_file_read, stdio_file_isatty): New stdio->fd instead of calling fileno. * ui-file.h (ui_file_write_async_safe_ftype): New typedef. (set_ui_file_write_async_safe): Declare. (ui_file_write_async_safe): Declare. doc/ * gdb.texinfo (Completion): Update example. (Debugging Output): Delete `set/show debug lin-lwp-async'.
This commit is contained in:
parent
6edba76fe8
commit
01124a23b3
6 changed files with 107 additions and 40 deletions
|
@ -45,6 +45,17 @@ typedef void (ui_file_fputs_ftype) (const char *, struct ui_file *stream);
|
|||
extern void set_ui_file_fputs (struct ui_file *stream,
|
||||
ui_file_fputs_ftype *fputs);
|
||||
|
||||
/* This version of "write" is safe for use in signal handlers.
|
||||
It's not guaranteed that all existing output will have been
|
||||
flushed first.
|
||||
Implementations are also free to ignore some or all of the request.
|
||||
fputs_async is not provided as the async versions are rarely used,
|
||||
no point in having both for a rarely used interface. */
|
||||
typedef void (ui_file_write_async_safe_ftype)
|
||||
(struct ui_file *stream, const char *buf, long length_buf);
|
||||
extern void set_ui_file_write_async_safe
|
||||
(struct ui_file *stream, ui_file_write_async_safe_ftype *write_async_safe);
|
||||
|
||||
typedef long (ui_file_read_ftype) (struct ui_file *stream,
|
||||
char *buf, long length_buf);
|
||||
extern void set_ui_file_read (struct ui_file *stream,
|
||||
|
@ -83,6 +94,9 @@ extern int ui_file_isatty (struct ui_file *);
|
|||
extern void ui_file_write (struct ui_file *file, const char *buf,
|
||||
long length_buf);
|
||||
|
||||
extern void ui_file_write_async_safe (struct ui_file *file, const char *buf,
|
||||
long length_buf);
|
||||
|
||||
/* NOTE: copies left to right. */
|
||||
extern void ui_file_put (struct ui_file *src,
|
||||
ui_file_put_method_ftype *write, void *dest);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue