#include #include #define N 4 // number of workers typedef struct { int i; // instance number unsigned int start, size; // search space: start ... start+size-1 //... } Data; Data D[N]; void *f( void *v) // worker function { int i = *(int *) v; printf( "f %i start = %u, size = %u\n", i, D[i].start, D[i].size); while( D[i].size > 0) { sleep(1); --D[i].size; } // simulate work printf( "f %i done\n", i); return 0; } int main( void) { // initialize data // for( int i = 0; i < N; ++i) { D[i].i = i; D[i].start = 10*i; D[i].size = 6-i; // simulate parameters }