From Richard Sharpe:
Hi Ronnie,
I have been running dbench on FreeBSD (8.0) recently, and I had some
problems getting it to run.
I found that it seems that under FreeBSD, if the semaphore is deleted
(IPC_RMID) before a process returns while waiting on a semop, it can
get EIDRM. I was seeing this for about 30 processes out of 50.
By moving the IPC_RMID out of the child processes and towards the end
of the master, things worked for me.
exit(1);
}
- semctl(barrier,0,IPC_RMID);
-
fn(&children[i*options.clients_per_process], options.loadfile);
_exit(0);
}
exit(1);
}
- semctl(barrier,0,IPC_RMID);
-
signal(SIGALRM, sig_alarm);
alarm(PRINT_FREQ);
alarm(0);
sig_alarm(SIGALRM);
+ semctl(barrier,0,IPC_RMID);
+
printf("\n");
report_latencies();