Merge pull request #661 from dbabokin/task_diagnostics

Fix task system dignostic to report real reason of the symaphore allocat...
This commit is contained in:
jbrodman
2013-11-20 09:16:51 -08:00

View File

@@ -693,10 +693,20 @@ InitTaskSystem() {
}
char name[32];
sprintf(name, "ispc_task.%d", (int)getpid());
workerSemaphore = sem_open(name, O_CREAT, S_IRUSR|S_IWUSR, 0);
if (!workerSemaphore) {
fprintf(stderr, "Error creating semaphore: %s\n", strerror(err));
bool success = false;
srand(time(NULL));
for (int i = 0; i < 10; i++) {
sprintf(name, "ispc_task.%d.%d", (int)getpid(), (int)rand());
workerSemaphore = sem_open(name, O_CREAT, S_IRUSR|S_IWUSR, 0);
if (workerSemaphore != SEM_FAILED) {
success = true;
break;
}
fprintf(stderr, "Failed to create %s\n", name);
}
if (!success) {
fprintf(stderr, "Error creating semaphore (%s): %s\n", name, strerror(errno));
exit(1);
}