svn commit: samba r9749 - in branches/tmp/RPCREWRITE/source/tdb: .

jra at samba.org jra at samba.org
Mon Aug 29 16:23:58 GMT 2005


Author: jra
Date: 2005-08-29 16:23:58 +0000 (Mon, 29 Aug 2005)
New Revision: 9749

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9749

Log:
Keep up to date with HEAD...
Jeremy.

Modified:
   branches/tmp/RPCREWRITE/source/tdb/tdbtorture.c


Changeset:
Modified: branches/tmp/RPCREWRITE/source/tdb/tdbtorture.c
===================================================================
--- branches/tmp/RPCREWRITE/source/tdb/tdbtorture.c	2005-08-29 16:12:56 UTC (rev 9748)
+++ branches/tmp/RPCREWRITE/source/tdb/tdbtorture.c	2005-08-29 16:23:58 UTC (rev 9749)
@@ -183,45 +183,45 @@
 	int loops = NLOOPS;
 	pid_t pids[NPROC];
 
-	pids[0] = getpid();
-
-	for (i=0;i<NPROC-1;i++) {
-		if ((pids[i+1]=fork()) == 0) break;
-	}
-
-	db = tdb_open("torture.tdb", 2, TDB_CLEAR_IF_FIRST, 
+	db = tdb_open("torture.tdb", 0, TDB_CLEAR_IF_FIRST, 
 		      O_RDWR | O_CREAT, 0600);
 	if (!db) {
 		fatal("db open failed");
 	}
-	tdb_logging_function(db, tdb_log);
 
-	srand(seed + getpid());
-	srandom(seed + getpid() + time(NULL));
-	for (i=0;i<loops;i++) addrec_db();
+	for (i=0;i<NPROC;i++) {
+		pids[i] = fork();
+		if (pids[i] == 0) {
+			tdb_reopen_all();
 
-	tdb_traverse(db, NULL, NULL);
-	tdb_traverse(db, traverse_fn, NULL);
-	tdb_traverse(db, traverse_fn, NULL);
+			tdb_logging_function(db, tdb_log);
 
-	tdb_close(db);
+			srand(seed + getpid());
+			srandom(seed + getpid() + time(NULL));
+			for (i=0;i<loops;i++) addrec_db();
 
-	if (getpid() == pids[0]) {
-		for (i=0;i<NPROC-1;i++) {
-			int status;
-			if (waitpid(pids[i+1], &status, 0) != pids[i+1]) {
-				printf("failed to wait for %d\n",
-				       (int)pids[i+1]);
-				exit(1);
-			}
-			if (WEXITSTATUS(status) != 0) {
-				printf("child %d exited with status %d\n",
-				       (int)pids[i+1], WEXITSTATUS(status));
-				exit(1);
-			}
+			tdb_traverse(db, NULL, NULL);
+			tdb_traverse(db, traverse_fn, NULL);
+			tdb_traverse(db, traverse_fn, NULL);
+
+			tdb_close(db);
+			exit(0);
 		}
-		printf("OK\n");
 	}
 
+	for (i=0;i<NPROC;i++) {
+		int status;
+		if (waitpid(pids[i], &status, 0) != pids[i]) {
+			printf("failed to wait for %d\n",
+			       (int)pids[i]);
+			exit(1);
+		}
+		if (WEXITSTATUS(status) != 0) {
+			printf("child %d exited with status %d\n",
+			       (int)pids[i], WEXITSTATUS(status));
+			exit(1);
+		}
+	}
+	printf("OK\n");
 	return 0;
 }



More information about the samba-cvs mailing list