[ovs-dev] [PATCH V2 08/10] utils: Introduce xsleep for RCU quiescent state

Gurucharan Shetty shettyg at nicira.com
Fri Mar 21 21:14:16 UTC 2014


On Fri, Mar 21, 2014 at 11:03 AM, Pravin <pshelar at nicira.com> wrote:
> 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);
There is no sleep() in windows. Can you do a Sleep(seconds * 1000) for
windows here.
> +    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
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev



More information about the dev mailing list