From 45c6c19136b6ae7ca65a42ab83766fd928d80245 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Tue, 5 Jun 2012 16:58:52 -0700 Subject: [PATCH] Refresh of rs-spin --- src/cma.c | 1 - src/cma.h | 1 - src/rsocket.c | 12 ++++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/cma.c b/src/cma.c index 140e22c9..f688c4c2 100755 --- a/src/cma.c +++ b/src/cma.c @@ -276,7 +276,6 @@ int ucma_init(void) cma_dev_cnt = dev_cnt; ucma_set_af_ib_support(); - rs_configure(); pthread_mutex_unlock(&mut); ibv_free_device_list(dev_list); return 0; diff --git a/src/cma.h b/src/cma.h index 828c6aa3..cedc0c36 100644 --- a/src/cma.h +++ b/src/cma.h @@ -114,7 +114,6 @@ static inline int ERR(int err) } int ucma_init(); -void rs_configure(); extern int af_ib_support; #define RAI_ROUTEONLY 0x01000000 diff --git a/src/rsocket.c b/src/rsocket.c index bb665036..90f9a102 100644 --- a/src/rsocket.c +++ b/src/rsocket.c @@ -204,11 +204,22 @@ struct rsocket { void rs_configure(void) { FILE *f; + static int init; + + if (init) + return; + + pthread_mutex_lock(&mut); + if (init) + goto out; if ((f = fopen(RS_CONF_DIR "/polling_time", "r"))) { fscanf(f, "%u", &polling_time); fclose(f); } + init = 1; +out: + pthread_mutex_unlock(&mut); } /* @@ -485,6 +496,7 @@ int rsocket(int domain, int type, int protocol) (type != SOCK_STREAM) || (protocol && protocol != IPPROTO_TCP)) return ERR(ENOTSUP); + rs_configure(); rs = rs_alloc(NULL); if (!rs) return ERR(ENOMEM); -- 2.45.2