qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] suppress 'warn_unused_result' warning


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH] suppress 'warn_unused_result' warning
Date: Mon, 11 May 2009 11:16:24 -0500
User-agent: Thunderbird 2.0.0.21 (X11/20090320)

Stuart Brady wrote:
On Sun, May 10, 2009 at 07:53:35PM -0600, M. Warner Losh wrote:
When a signal is received and you are waiting for data, you get
EINTR.  If there's data available, then I believe the behavior is to
return that data and not EINTR.  That's the way Unix works.

So if I do a read() from a file over NFS, and there's an awful lot of
latency (and perhaps even connection problems), and the process gets a
signal -- does that mean that the signal will only be delivered once
data is returned?

If not, then I would really start to wonder whether /all/ code dealing
with read(), write(), etc. should be written to cope with EINTR (and also partial reads/writes?) regardless of whatever is done with threads
and signal masks, as doing otherwise seems only to be asking for trouble
at some point.  (I'd be especially concerned about signals intended for
libraries that are not under the developer's control...)

Any system call can return EINTR just about.  It's not just read/write.

In general, very few systems handle EINTR completely and QEMU is no exception here.

More should because SIGHUP is fairly common but I think that for the most part, it's sufficiently rare that it's not a problem for most projects.

Regards,

Anthony Liguori




reply via email to

[Prev in Thread] Current Thread [Next in Thread]