+ xbt_mutex_acquire(thread->mutex);
+ xbt_assert1(thread->joinable,
+ "Cannot join on %p: wasn't created joinable", thread);
+ if (!thread->done) {
+ xbt_cond_wait(thread->cond, thread->mutex);
+ xbt_mutex_release(thread->mutex);
+ }
+
+ xbt_mutex_destroy(thread->mutex);
+ xbt_cond_destroy(thread->cond);
+ free(thread->name);
+ free(thread);
+