threads = NULL;
file_hash_exit();
+ flow_exit();
fio_debug_jobp = NULL;
shmdt(tp);
shmctl(shm_id, IPC_RMID, &sbuf);
shm_id = shmget(0, size, IPC_CREAT | 0600);
if (shm_id != -1)
break;
- if (errno != EINVAL) {
+ if (errno != EINVAL && errno != ENOMEM) {
perror("shmget");
break;
}
fio_debug_jobp = (void *) hash + file_hash_size;
*fio_debug_jobp = -1;
file_hash_init(hash);
+
+ flow_init();
+
return 0;
}
return;
profile_td_exit(td);
+ flow_exit_job(td);
if (td->error)
log_info("fio: %s\n", td->verror);
if (fixup_options(td))
goto err;
+ flow_init_job(td);
+
/*
* IO engines only need this for option callbacks, and the address may
* change in subprocesses.