Message ID | a26ef20e6ff686573a0af16435f20aba186746af.1516985620.git.msuchanek@suse.de (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On Fri, 2018-01-26 at 17:58 +0100, Michal Suchanek wrote: > Add convenience macro for polling an event that does not have a > waitqueue. > > Signed-off-by: Michal Suchanek <msuchanek@suse.de> > --- > include/linux/delay.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/include/linux/delay.h b/include/linux/delay.h > index b78bab4395d8..3ae9fa395628 100644 > --- a/include/linux/delay.h > +++ b/include/linux/delay.h > @@ -64,4 +64,16 @@ static inline void ssleep(unsigned int seconds) > msleep(seconds * 1000); > } > > +#define poll_event_interruptible(event, interval) ({ \ > + int ret = 0; \ > + while (!(event)) { \ > + if (signal_pending(current)) { \ > + ret = -ERESTARTSYS; \ > + break; \ > + } \ > + msleep_interruptible(interval); \ > + } \ > + ret; \ > +}) > + > #endif /* defined(_LINUX_DELAY_H) */ Sorry but I'm not sure we should encourage other kernel developers to use busy-waiting by adding the poll_event_interruptible() macro to a system-wide header file. Can that macro be moved into a CDROM-specific .c or .h file? Thanks, Bart.
diff --git a/include/linux/delay.h b/include/linux/delay.h index b78bab4395d8..3ae9fa395628 100644 --- a/include/linux/delay.h +++ b/include/linux/delay.h @@ -64,4 +64,16 @@ static inline void ssleep(unsigned int seconds) msleep(seconds * 1000); } +#define poll_event_interruptible(event, interval) ({ \ + int ret = 0; \ + while (!(event)) { \ + if (signal_pending(current)) { \ + ret = -ERESTARTSYS; \ + break; \ + } \ + msleep_interruptible(interval); \ + } \ + ret; \ +}) + #endif /* defined(_LINUX_DELAY_H) */
Add convenience macro for polling an event that does not have a waitqueue. Signed-off-by: Michal Suchanek <msuchanek@suse.de> --- include/linux/delay.h | 12 ++++++++++++ 1 file changed, 12 insertions(+)