summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libpthread/pthread_key_create.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/dietlibc/libpthread/pthread_key_create.c')
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_key_create.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_key_create.c b/mdk-stage1/dietlibc/libpthread/pthread_key_create.c
index 44fccea6a..9718c695b 100644
--- a/mdk-stage1/dietlibc/libpthread/pthread_key_create.c
+++ b/mdk-stage1/dietlibc/libpthread/pthread_key_create.c
@@ -1,3 +1,4 @@
+#include <string.h>
#include <unistd.h>
#include <errno.h>
@@ -19,7 +20,7 @@ int pthread_key_create(pthread_key_t *key, void (*destructor)(const void*))
if (!__thread_keys[i].used) {
__thread_keys[i].used=1;
__thread_keys[i].destructor=destructor;
- memset(__thread_keys[i].tkd,0,PTHREAD_THREADS_MAX*sizeof(struct _thread_key));
+ memset(__thread_keys[i].tkd,0,PTHREAD_THREADS_MAX*sizeof(void*));
*key=i;
ret=0;
break;
@@ -29,7 +30,7 @@ int pthread_key_create(pthread_key_t *key, void (*destructor)(const void*))
__pthread_unlock(&__thread_keys_lock);
__NO_ASYNC_CANCEL_END;
- if (ret) (*__errno_location())=EAGAIN;
- return ret;
+ if (ret) return EAGAIN;
+ return 0;
}