From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27677 invoked by alias); 24 Apr 2009 04:25:54 -0000 Received: (qmail 27648 invoked by alias); 24 Apr 2009 04:25:52 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS X-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS X-Spam-Check-By: sourceware.org X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bastion2.fedora.phx.redhat.com Subject: cluster: STABLE3 - cman init: faster stop operation To: cluster-cvs-relay@redhat.com X-Project: Cluster Project X-Git-Module: cluster.git X-Git-Refname: refs/heads/STABLE3 X-Git-Reftype: branch X-Git-Oldrev: bc0a0bb15ea60dafd331c301344335354f819301 X-Git-Newrev: 202410c294867474201f85be11eab3f579801088 From: "Fabio M. Di Nitto" Message-Id: <20090424042526.C4BFC1201FE@lists.fedorahosted.org> Date: Fri, 24 Apr 2009 04:25:00 -0000 X-Scanned-By: MIMEDefang 2.58 on 172.16.52.254 Mailing-List: contact cluster-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cluster-cvs-owner@sourceware.org X-SW-Source: 2009-q2/txt/msg00103.txt.bz2 Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=202410c294867474201f85be11eab3f579801088 Commit: 202410c294867474201f85be11eab3f579801088 Parent: bc0a0bb15ea60dafd331c301344335354f819301 Author: Fabio M. Di Nitto AuthorDate: Fri Apr 24 06:23:14 2009 +0200 Committer: Fabio M. Di Nitto CommitterDate: Fri Apr 24 06:23:14 2009 +0200 cman init: faster stop operation stop daemon operation was waiting for one sec in between each check, before going forward. This was a bit too much. On distributions that have a sleep that supports decimal operations, switch to 250ms instead of 1 second. This makes the stop operation a lot faster (in the normal case). Tested by David Teigland. Signed-off-by: Fabio M. Di Nitto --- cman/init.d/cman.in | 22 ++++++++++++++++++---- 1 files changed, 18 insertions(+), 4 deletions(-) diff --git a/cman/init.d/cman.in b/cman/init.d/cman.in index 49df088..3ba6c15 100644 --- a/cman/init.d/cman.in +++ b/cman/init.d/cman.in @@ -202,20 +202,34 @@ start_daemon() errmsg=$( $daemon $args 2>&1 ) } +check_sleep() +{ + if ! sleep 0.01 > /dev/null 2>&1; then + return 1 + fi +} + stop_daemon() { daemon=$1 shift - maxretries=$1 + retryforsec=$1 - [ -z "$maxretries" ] && maxretries=1 + [ -z "$retryforsec" ] && retryforsec=1 retries=0 + if check_sleep; then + sleepfor=0.25 + retryforsec=$(($retryforsec * 4)) + else + sleepfor=1 + fi + while status $daemon > /dev/null 2>&1 && \ - [ $retries -lt $maxretries ]; do + [ $retries -lt $retryforsec ]; do errmsg=$( pkill -TERM $daemon ) || return 1 - sleep 1 + sleep $sleepfor ((retries++)) done