* linux-low.c (linux_wait): Unblock async I/O.
(linux_resume): Block and enable async I/O. * remote-utils.c (block_async_io, unblock_async_io): New functions. * server.h (block_async_io, unblock_async_io): Add prototypes.
This commit is contained in:
parent
6910d122ac
commit
62ea82f508
4 changed files with 33 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2004-02-29 Daniel Jacobowitz <drow@mvista.com>
|
||||||
|
|
||||||
|
* linux-low.c (linux_wait): Unblock async I/O.
|
||||||
|
(linux_resume): Block and enable async I/O.
|
||||||
|
* remote-utils.c (block_async_io, unblock_async_io): New functions.
|
||||||
|
* server.h (block_async_io, unblock_async_io): Add prototypes.
|
||||||
|
|
||||||
2004-02-29 Daniel Jacobowitz <drow@mvista.com>
|
2004-02-29 Daniel Jacobowitz <drow@mvista.com>
|
||||||
|
|
||||||
* remote-utils.c (remote_open): Print a status notice after
|
* remote-utils.c (remote_open): Print a status notice after
|
||||||
|
|
|
@ -662,6 +662,7 @@ retry:
|
||||||
}
|
}
|
||||||
|
|
||||||
enable_async_io ();
|
enable_async_io ();
|
||||||
|
unblock_async_io ();
|
||||||
w = linux_wait_for_event (child);
|
w = linux_wait_for_event (child);
|
||||||
stop_all_processes ();
|
stop_all_processes ();
|
||||||
disable_async_io ();
|
disable_async_io ();
|
||||||
|
@ -1017,7 +1018,11 @@ linux_resume (struct thread_resume *resume_info)
|
||||||
if (pending_flag)
|
if (pending_flag)
|
||||||
for_each_inferior (&all_threads, linux_queue_one_thread);
|
for_each_inferior (&all_threads, linux_queue_one_thread);
|
||||||
else
|
else
|
||||||
for_each_inferior (&all_threads, linux_continue_one_thread);
|
{
|
||||||
|
block_async_io ();
|
||||||
|
enable_async_io ();
|
||||||
|
for_each_inferior (&all_threads, linux_continue_one_thread);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LINUX_USRREGS
|
#ifdef HAVE_LINUX_USRREGS
|
||||||
|
|
|
@ -367,6 +367,24 @@ input_interrupt (int unused)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
block_async_io (void)
|
||||||
|
{
|
||||||
|
sigset_t sigio_set;
|
||||||
|
sigemptyset (&sigio_set);
|
||||||
|
sigaddset (&sigio_set, SIGIO);
|
||||||
|
sigprocmask (SIG_BLOCK, &sigio_set, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
unblock_async_io (void)
|
||||||
|
{
|
||||||
|
sigset_t sigio_set;
|
||||||
|
sigemptyset (&sigio_set);
|
||||||
|
sigaddset (&sigio_set, SIGIO);
|
||||||
|
sigprocmask (SIG_UNBLOCK, &sigio_set, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
enable_async_io (void)
|
enable_async_io (void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -134,6 +134,8 @@ void write_ok (char *buf);
|
||||||
void write_enn (char *buf);
|
void write_enn (char *buf);
|
||||||
void enable_async_io (void);
|
void enable_async_io (void);
|
||||||
void disable_async_io (void);
|
void disable_async_io (void);
|
||||||
|
void unblock_async_io (void);
|
||||||
|
void block_async_io (void);
|
||||||
void convert_ascii_to_int (char *from, char *to, int n);
|
void convert_ascii_to_int (char *from, char *to, int n);
|
||||||
void convert_int_to_ascii (char *from, char *to, int n);
|
void convert_int_to_ascii (char *from, char *to, int n);
|
||||||
void new_thread_notify (int id);
|
void new_thread_notify (int id);
|
||||||
|
|
Loading…
Add table
Reference in a new issue