X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2F3ds%2Fpthread.h;h=9f43707e2fb7e0a8781d3b5bc345c444f9502fa6;hb=37c2f059e48351904a4ff63675e3971e222ab074;hp=2c2bf6b1a3310a096951790eb9d45c0a84b4dc93;hpb=1bedbd6f272bd83af54c80eb0089ae1d6f4561a2;p=pcsx_rearmed.git diff --git a/frontend/3ds/pthread.h b/frontend/3ds/pthread.h index 2c2bf6b1..9f43707e 100644 --- a/frontend/3ds/pthread.h +++ b/frontend/3ds/pthread.h @@ -10,23 +10,13 @@ #define CTR_PTHREAD_STACK_SIZE 0x10000 -typedef struct -{ - int32_t handle; - uint32_t* stack; -}pthread_t; +typedef int32_t pthread_t; typedef int pthread_attr_t; static inline int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg) { - - thread->stack = linearMemAlign(CTR_PTHREAD_STACK_SIZE, 8); - - svcCreateThread(&thread->handle, start_routine, arg, - (uint32_t*)((uint32_t)thread->stack + CTR_PTHREAD_STACK_SIZE), - 0x25, 1); - + thread = threadCreate(start_routine, arg, CTR_PTHREAD_STACK_SIZE, 0x25, -2, FALSE); return 1; } @@ -35,10 +25,10 @@ static inline int pthread_join(pthread_t thread, void **retval) { (void)retval; - if(svcWaitSynchronization(thread.handle, INT64_MAX)) + if(threadJoin(thread, INT64_MAX)) return -1; - linearFree(thread.stack); + threadFree(thread); return 0; } @@ -48,7 +38,7 @@ static inline void pthread_exit(void *retval) { (void)retval; - svcExitThread(); + threadExit(0); }