From mboxrd@z Thu Jan 1 00:00:00 1970 From: pcaulfield@sourceware.org Date: 18 Jul 2007 15:13:27 -0000 Subject: [Cluster-devel] cluster/dlm/tests/usertest flood.c Message-ID: <20070718151327.20411.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: cluster Branch: STABLE Changes by: pcaulfield at sourceware.org 2007-07-18 15:13:26 Modified files: dlm/tests/usertest: flood.c Log message: Add timeout Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/dlm/tests/usertest/flood.c.diff?cvsroot=cluster&only_with_tag=STABLE&r1=1.1.2.2&r2=1.1.2.3 --- cluster/dlm/tests/usertest/flood.c 2005/12/19 16:43:59 1.1.2.2 +++ cluster/dlm/tests/usertest/flood.c 2007/07/18 15:13:26 1.1.2.3 @@ -37,6 +37,7 @@ fprintf(file, " -m Maximum number of locks to hold (default MAX_INT)\n"); fprintf(file, " -i Show progress in increments (default 1000)\n"); fprintf(file, " -n Number of resources (default 10)\n"); + fprintf(file, " -t Seconds to run for\n"); fprintf(file, " -q Quit\n"); @@ -49,15 +50,20 @@ struct dlm_lksb *lksb = arg; if (lksb->sb_status == 0) { + if (lksb->sb_lkid & 0x80000000) { + fprintf(stderr, "got -ve lock ID : %x\n", lksb->sb_lkid); + } dlm_unlock(lksb->sb_lkid, 0, lksb, lksb); return; } if (lksb->sb_status == EUNLOCK) { count--; - free(lksb); + //free(lksb); + return; } - + fprintf(stderr, "lock failed: %s\n", strerror(lksb->sb_status)); + exit(1); } int main(int argc, char *argv[]) @@ -68,16 +74,19 @@ int rescount = 10; int increment = 1000; int quiet = 0; + int runtime = 0; int status; int i; int mode = LKM_CRMODE; signed char opt; char **resources; + clock_t start; + time_t starttime; /* Deal with command-line arguments */ opterr = 0; optind = 0; - while ((opt=getopt(argc,argv,"?m:i:qn:vV")) != EOF) + while ((opt=getopt(argc,argv,"?m:i:qn:t:vV")) != EOF) { switch(opt) { @@ -101,6 +110,10 @@ rescount = atoi(optarg); break; + case 't': + runtime = atoi(optarg); + break; + case 'q': quiet = 1; break; @@ -124,10 +137,12 @@ pthread_mutex_lock(&mutex); dlm_pthread_init(); + start = times(NULL); - while (1) { + starttime = time(NULL); + while (runtime?(time(NULL)-starttime maxlocks) { sleep(1); } } + if (runtime) + printf("finished %d lock operations\n", lockops); return 0; }