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;
 }

Reply via email to