On 6 September 2015 at 00:57, Timothy E Baldwin <t.e.baldwi...@members.leeds.ac.uk> wrote: > Without this a signal could vanish on thread exit. > > Signed-off-by: Timothy Edward Baldwin <t.e.baldwi...@members.leeds.ac.uk> > --- > linux-user/syscall.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 4839154..efe61e3 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -5719,8 +5719,12 @@ abi_long do_syscall(void *cpu_env, int num, abi_long > arg1, > However in threaded applictions it is used for thread termination, > and _exit_group is used for application termination. > Do thread termination if we have more then one thread. */ > - /* FIXME: This probably breaks if a signal arrives. We should > probably > - be disabling signals. */ > + > + if (block_signals()) { > + ret = -TARGET_ERESTARTSYS; > + break; > + } > + > if (CPU_NEXT(first_cpu)) { > TaskState *ts; >
Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM