diff --git a/run.c b/run.c index 05c7155ddb1f68932cac9395191c8f0a46dfeeee..b7e110c424b096c3fc32fe3fa76ea76df5b3ea44 100755 --- a/run.c +++ b/run.c @@ -311,19 +311,27 @@ void thread_create_join(struct buffer_rc *ptr1,struct buffer_cw *ptr2,struct buf pthread_t reader; pthread_t calculators[N]; pthread_t writer; - pthread_create(&reader,NULL,&reading,ptr1); + int err; + err=pthread_create(&reader,NULL,&reading,ptr1); + if(err != 0){return;} + for (int i = 0; i < N; i++) { - pthread_create(&calculators[i],NULL,&calculating,ptr3); + err=pthread_create(&calculators[i],NULL,&calculating,ptr3); + if(err != 0){return;} } - pthread_create(&writer,NULL,&writing,ptr2); + err = pthread_create(&writer,NULL,&writing,ptr2); + if(err != 0){return;} - pthread_join(reader,NULL); + err = pthread_join(reader,NULL); + if(err != 0){return;} for (int i = 0; i < N; i++) { - pthread_join(calculators[i],NULL); + err = pthread_join(calculators[i],NULL); + if(err != 0){return;} } - pthread_join(writer,NULL); + err = pthread_join(writer,NULL); + if(err != 0){return;} } void mut_sem_destroy(void){ diff --git a/run.o b/run.o index b0081eb4a3921755482a912e35e3db220d1093b7..3e766cf249ea70db8c7b05536ae80ffaa4a545d5 100644 Binary files a/run.o and b/run.o differ