Rob, Thanks, that should also work. Seems do_sigaction() in linux-user/signal.c has some code which does that (though obviously not for the signal that I'm receiving). Any idea why SA_RESTART calls are not invoked by default to restart syscalls for all signals? --Yigael
On 7/6/07, Rob Landley <[EMAIL PROTECTED]> wrote:
On Monday 25 June 2007 20:14:24 Yigael Fleishman wrote: > Running qemu on a Ubuntu Feisty host I've encountered an occasional > failure-to-launch problem. > I've used the "-serial /dev/ttyS0" at the command line, and qemu would > often exit printing "could not open serial device". > Looking in the srcs I've noticed that qemu_chr_open_tty does not retry the > 'open' syscall if it fails and errno=EINTR. > I've added a retry for such case and it seems to solve that specific > problem (see the following patch). > Furthermore, I've noticed that all open, read and some write calls in > vl.care not retried in such cases. Please don't play whack-a-mole with this. You probably want sigaction(SA_RESTART) when running system emulation. Rob -- "One of my most productive days was throwing away 1000 lines of code." - Ken Thompson.