Implementing A "Future" (Cont.) f->value_is_set = 0; f->value = 0; /* just to be safe. */ if (pthread_mutex_init(&f->mutex, NULL) != 0) goto int_future_init_mutex_fail; if (pthread_cond_init(&f->cond, NULL) != 0) goto int_future_init_cond_fail; int_future_init_cond_fail: pthread_mutex_destroy(&f->mutex); int_future_init_mutex_fail: int_future_init_ret: return rc; }