int main(int argc, char *argv[]){ int i,j; lwt_thread *t; lwt_init(); empty = lwt_createS(size); full = lwt_createS(0); lock = lwt_createS(1); for(i=0;i<4;i++){ t = lwt_create(producter, NULL); lwt_run(t); } for(i=0; i<2;i++){ t = lwt_create(consumer, NULL); lwt_run(t); } lwt_wait(t); }
void lwt_main(int argc, char *argv[], int *ret_val) { (void)argc; (void)argv; barrier = lwt_barrier_init(2); sig = lwt_sig_init(2); if(barrier == 0 || sig == 0) { *ret_val = 1; return; } lwt_run(t1, 0, 0); lwt_run(t2, 0, 0); lwt_sig_wait(sig); lwt_sig_destroy(sig); }