udev: settle should return immediately when timeout is 0

udevadm manual says:

    A value of 0 will check if the queue is empty and always return
    immediately.

However, currently we ignore the deadline if the value is 0, and wait
without any limit.

Zero timeout behaved according to the documentation until commit
ead7c62ab7 (udevadm: settle - kill alarm()). Looking at this patch, it
seems that the behavior change was unintended.

This patch restores the documented behavior.
This commit is contained in:
Nir Soffer 2015-04-19 03:41:26 +03:00 committed by David Herrmann
parent 30a5b7820c
commit bf23b9f86f

View file

@ -142,7 +142,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) {
break;
}
if (timeout > 0 && now(CLOCK_MONOTONIC) >= deadline)
if (now(CLOCK_MONOTONIC) >= deadline)
break;
/* wake up when queue is empty */