chiark / gitweb /
use nanosleep() instead of usleep()
[elogind.git] / udev / udev-event.c
index 3a6c71abe904efeeacb40f3a464dce4edd4e75aa..8183793e5f4536824b3fd62fc0b0f207daf0a275 100644 (file)
 #include <errno.h>
 #include <ctype.h>
 #include <string.h>
+#include <time.h>
+#include <net/if.h>
 #include <sys/ioctl.h>
 #include <sys/socket.h>
-#include <net/if.h>
 #include <linux/sockios.h>
 
 #include "udev.h"
@@ -505,6 +506,8 @@ static int rename_netif(struct udev_event *event)
                util_strscpy(ifr.ifr_newname, IFNAMSIZ, event->name);
                loop = 90 * 20;
                while (loop--) {
+                       const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 };
+
                        err = ioctl(sk, SIOCSIFNAME, &ifr);
                        if (err == 0) {
                                rename_netif_kernel_log(ifr);
@@ -518,7 +521,7 @@ static int rename_netif(struct udev_event *event)
                        }
                        dbg(event->udev, "wait for netif '%s' to become free, loop=%i\n",
                            event->name, (90 * 20) - loop);
-                       usleep(1000 * 1000 / 20);
+                       nanosleep(&duration, NULL);
                }
        }
 exit: