[ovs-dev] [PATCH V2 08/10] utils: Introduce xsleep for RCU quiescent state
Pravin
pshelar at nicira.com
Fri Mar 21 18:03:42 UTC 2014
Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
---
lib/daemon.c | 2 +-
lib/util.c | 12 ++++++++++++
lib/util.h | 1 +
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/lib/daemon.c b/lib/daemon.c
index 9d96cba..c1c6550 100644
--- a/lib/daemon.c
+++ b/lib/daemon.c
@@ -416,7 +416,7 @@ monitor_daemon(pid_t daemon_pid)
if (now >= wakeup) {
break;
}
- sleep(wakeup - now);
+ xsleep(wakeup - now);
}
}
last_restart = time(NULL);
diff --git a/lib/util.c b/lib/util.c
index 0d1d9a5..805f33a 100644
--- a/lib/util.c
+++ b/lib/util.c
@@ -30,6 +30,7 @@
#include "bitmap.h"
#include "byte-order.h"
#include "coverage.h"
+#include "ovs-rcu.h"
#include "ovs-thread.h"
#include "vlog.h"
#ifdef HAVE_PTHREAD_SET_NAME_NP
@@ -1726,6 +1727,17 @@ exit:
return ok;
}
+unsigned int
+xsleep(unsigned int seconds)
+{
+ unsigned int t;
+
+ ovsrcu_quiesce_start();
+ t = sleep(seconds);
+ ovsrcu_quiesce_end();
+ return t;
+}
+
#ifdef _WIN32
char *
diff --git a/lib/util.h b/lib/util.h
index 3db005a..13ff58e 100644
--- a/lib/util.h
+++ b/lib/util.h
@@ -507,6 +507,7 @@ char *ovs_format_message(int error);
char *ovs_lasterror_to_string(void);
int ftruncate(int fd, off_t length);
#endif
+unsigned int xsleep(unsigned int seconds);
#ifdef __cplusplus
}
--
1.7.9.5
More information about the dev
mailing list