#include <zircon/process.h>

#include "threads_impl.h"

int __pthread_join(pthread_t t, void** res) {
  switch (zxr_thread_join(&t->zxr_thread)) {
    case ZX_OK:
      __thread_list_erase(t);
      if (res)
        *res = t->result;
      _zx_vmar_unmap(_zx_vmar_root_self(), (uintptr_t)t->tcb_region.iov_base,
                     t->tcb_region.iov_len);
      return 0;
    default:
      return EINVAL;
  }
}

weak_alias(__pthread_join, pthread_join);
