|
@@ -217,6 +217,8 @@ do { \
|
|
|
if (!ret) \
|
|
|
break; \
|
|
|
} \
|
|
|
+ if (!ret && (condition)) \
|
|
|
+ ret = 1; \
|
|
|
finish_wait(&wq, &__wait); \
|
|
|
} while (0)
|
|
|
|
|
@@ -233,8 +235,9 @@ do { \
|
|
|
* wake_up() has to be called after changing any variable that could
|
|
|
* change the result of the wait condition.
|
|
|
*
|
|
|
- * The function returns 0 if the @timeout elapsed, and the remaining
|
|
|
- * jiffies if the condition evaluated to true before the timeout elapsed.
|
|
|
+ * The function returns 0 if the @timeout elapsed, or the remaining
|
|
|
+ * jiffies (at least 1) if the @condition evaluated to %true before
|
|
|
+ * the @timeout elapsed.
|
|
|
*/
|
|
|
#define wait_event_timeout(wq, condition, timeout) \
|
|
|
({ \
|
|
@@ -302,6 +305,8 @@ do { \
|
|
|
ret = -ERESTARTSYS; \
|
|
|
break; \
|
|
|
} \
|
|
|
+ if (!ret && (condition)) \
|
|
|
+ ret = 1; \
|
|
|
finish_wait(&wq, &__wait); \
|
|
|
} while (0)
|
|
|
|
|
@@ -318,9 +323,10 @@ do { \
|
|
|
* wake_up() has to be called after changing any variable that could
|
|
|
* change the result of the wait condition.
|
|
|
*
|
|
|
- * The function returns 0 if the @timeout elapsed, -ERESTARTSYS if it
|
|
|
- * was interrupted by a signal, and the remaining jiffies otherwise
|
|
|
- * if the condition evaluated to true before the timeout elapsed.
|
|
|
+ * Returns:
|
|
|
+ * 0 if the @timeout elapsed, -%ERESTARTSYS if it was interrupted by
|
|
|
+ * a signal, or the remaining jiffies (at least 1) if the @condition
|
|
|
+ * evaluated to %true before the @timeout elapsed.
|
|
|
*/
|
|
|
#define wait_event_interruptible_timeout(wq, condition, timeout) \
|
|
|
({ \
|