#include "pthread_impl.h"
#include <threads.h>

int __pthread_create(pthread_t* restrict,
                     const pthread_attr_t* restrict,
                     void* (*)(void*),
                     void* restrict);

int thrd_create(thrd_t* thr, thrd_start_t func, void* arg) {
  int ret =
      __pthread_create(thr, __ATTRP_C11_THREAD, (void* (*)(void*))func, arg);
  switch (ret) {
    case 0:
      return thrd_success;
    case EAGAIN:
      return thrd_nomem;
    default:
      return thrd_error;
  }
}
