cluster: STABLE32 - rgmanager: Retry connection to cpglockd
Ryan McCabe
rmccabe at fedoraproject.org
Tue May 1 13:43:49 UTC 2012
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=26c3db58dac85cabef6001b9b9abc3a089b77c26
Commit: 26c3db58dac85cabef6001b9b9abc3a089b77c26
Parent: f5cf113f8e43a3f9a68c55a625cc6ebc8825e4c4
Author: Lon Hohberger <lhh at redhat.com>
AuthorDate: Fri Apr 27 18:33:34 2012 -0400
Committer: Ryan McCabe <rmccabe at redhat.com>
CommitterDate: Mon Apr 30 09:19:36 2012 -0400
rgmanager: Retry connection to cpglockd
Signed-off-by: Lon Hohberger <lhh at redhat.com>
Signed-off-by: Ryan McCabe <rmccabe at redhat.com>
---
rgmanager/src/clulib/cpg_lock.c | 27 ++++++++++++++++++---------
1 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/rgmanager/src/clulib/cpg_lock.c b/rgmanager/src/clulib/cpg_lock.c
index d257cf4..7c1c8c3 100644
--- a/rgmanager/src/clulib/cpg_lock.c
+++ b/rgmanager/src/clulib/cpg_lock.c
@@ -105,18 +105,27 @@ _cpg_lock_finished(const char *name)
int
cpg_lock_initialize(void)
{
- int ret, err;
+ int ret, err, retries = 0;
- pthread_mutex_lock(&_default_lock);
- if (_cpgh) {
+ while (retries < 10) {
+ pthread_mutex_lock(&_default_lock);
+ if (_cpgh) {
+ pthread_mutex_unlock(&_default_lock);
+ return 0;
+ }
+
+ cpg_lock_init(&_cpgh);
+ ret = (_cpgh == NULL);
+ err = errno;
pthread_mutex_unlock(&_default_lock);
- return 0;
- }
- cpg_lock_init(&_cpgh);
- ret = (_cpgh == NULL);
- err = errno;
- pthread_mutex_unlock(&_default_lock);
+ if (ret == 0)
+ break;
+ else {
+ sleep(1);
+ ++retries;
+ }
+ }
/* Set up function pointers */
clu_lock = _cpg_lock;
More information about the cluster-commits
mailing list