diff -u old/ new/        
--- old/Makefile.in	2008-09-18 14:43:55.000000000 -0700
+++ new/Makefile.in	2008-09-18 14:42:53.000000000 -0700
@@ -22,10 +22,10 @@
 all: dbench tbench tbench_srv
 
 dbench: $(DB_OBJS)
-	$(CC) -o $@ $(DB_OBJS) $(LIBS)
+	$(CC) -lpthread -o $@ $(DB_OBJS) $(LIBS)
 
 tbench: $(TB_OBJS)
-	$(CC) -o $@ $(TB_OBJS) $(LIBS)
+	$(CC) -lpthread -o $@ $(TB_OBJS) $(LIBS)
 
 tbench_srv: $(SRV_OBJS)
 	$(CC) -o $@ $(SRV_OBJS) $(LIBS)
diff -u old/ new/        
--- old/dbench.c	2008-09-18 14:43:49.000000000 -0700
+++ new/dbench.c	2008-09-18 14:42:46.000000000 -0700
@@ -130,6 +130,8 @@
 	int synccount;
 	struct timeval tv;
 	FILE *load;
+	int shmid;
+	sem_t *sema;
 
 	load = open_loadfile();
 	if (load == NULL) {
@@ -162,12 +164,24 @@
 		children[i].directory = directory;
 	}
 
+	shmid = shmget(IPC_PRIVATE, sizeof(*sema), IPC_CREAT | 0666);
+	if (shmid < 0) {
+		perror("could not create shared memory segment");
+		exit(1);
+	}
+	sema = shmat(shmid, NULL, 0);
+
+	if (sem_init(sema, 1, 0) < 0) {
+		perror("semaphore initilization failed");
+		exit(1);
+	}
+
 	for (i=0;i<nprocs;i++) {
 		if (fork() == 0) {
 			setlinebuf(stdout);
 			nb_setup(&children[i]);
 			children[i].status = getpid();
-			pause();
+			sem_wait(sema);
 			fn(&children[i], loadfile);
 			_exit(0);
 		}
@@ -185,12 +199,14 @@
 
 	if (synccount != nprocs) {
 		printf("FAILED TO START %d CLIENTS (started %d)\n", nprocs, synccount);
+		shmdt(sema);
 		return;
 	}
 
 	printf("%d clients started\n", nprocs);
 
-	kill(0, SIGCONT);
+	for (i=0;i<nprocs;i++)
+		sem_post(sema);
 
 	tv_start = timeval_current();
 
@@ -202,6 +218,7 @@
 		if (WEXITSTATUS(status) != 0) {
 			printf("Child failed with status %d\n",
 			       WEXITSTATUS(status));
+			shmdt(sema);
 			exit(1);
 		}
 		i++;
@@ -210,6 +227,8 @@
 	alarm(0);
 	sig_alarm(SIGALRM);
 
+	shmdt(sema);
+
 	printf("\n");
 }
 
diff -u old/ new/        
--- old/dbench.h	2008-09-18 14:43:48.000000000 -0700
+++ new/dbench.h	2008-09-18 14:42:48.000000000 -0700
@@ -35,6 +35,7 @@
 #include <sys/ipc.h>
 #include <sys/shm.h>
 #include <sys/mman.h>
+#include <semaphore.h>
 
 #ifdef HAVE_SYS_VFS_H
 #include <sys/vfs.h>
