NUM_CHUNKS
uint32_t partitions[NUM_CHUNKS];
int permutation[NUM_CHUNKS]; //the order in which to write the chunks
static sem_t chunk_sems[NUM_THREADS - 1][NUM_CHUNKS];
for(chunk_idx=0; chunk_idx < NUM_CHUNKS; chunk_idx++){
for(perm_idx = 0; perm_idx < NUM_CHUNKS; perm_idx++)
for(sem_idx=0; sem_idx < NUM_CHUNKS; sem_idx++){
for(sem_idx=0; sem_idx < NUM_CHUNKS; sem_idx++){
static sem_t chunk_sems[NUM_CHUNKS];
for(chunk_idx=0; chunk_idx < NUM_CHUNKS; chunk_idx++){
for(perm_idx = 0; perm_idx < NUM_CHUNKS; perm_idx++)
if (perm_idx == NUM_CHUNKS / 2 && phase == follower_syncs){
for(perm_idx = 0; perm_idx < NUM_CHUNKS; perm_idx++)
if (perm_idx == NUM_CHUNKS / 2 && phase == leader_syncs){
assert(NUM_CHUNKS <= 8 * sizeof(((pattern_t*) 0)->follower_chunks));
for(sem_idx=0; sem_idx < NUM_CHUNKS; sem_idx++){
for(sem_idx=0; sem_idx < NUM_CHUNKS; sem_idx++){
uint32_t partitions[NUM_CHUNKS];
int permutation[NUM_CHUNKS]; //the order in which to write the chunks