summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libpthread/pthread_sys_alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/dietlibc/libpthread/pthread_sys_alloc.c')
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_alloc.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_alloc.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_alloc.c
index 9f7d23d79..9fd4bcd95 100644
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_alloc.c
+++ b/mdk-stage1/dietlibc/libpthread/pthread_sys_alloc.c
@@ -3,10 +3,11 @@
#include <pthread.h>
#include "thread_internal.h"
+#include <stdlib.h>
+
static pthread_mutex_t mutex_alloc = PTHREAD_MUTEX_INITIALIZER;
-void free(void *ptr)
-{
+void free(void *ptr) {
__NO_ASYNC_CANCEL_BEGIN;
pthread_mutex_lock(&mutex_alloc);
__libc_free(ptr);
@@ -14,8 +15,7 @@ void free(void *ptr)
__NO_ASYNC_CANCEL_END;
}
-void *malloc(size_t size)
-{
+void *malloc(size_t size) {
register void *ret;
__NO_ASYNC_CANCEL_BEGIN;
pthread_mutex_lock(&mutex_alloc);
@@ -24,3 +24,13 @@ void *malloc(size_t size)
__NO_ASYNC_CANCEL_END;
return ret;
}
+
+void* realloc(void* ptr, size_t size) {
+ register void *ret;
+ __NO_ASYNC_CANCEL_BEGIN;
+ pthread_mutex_lock(&mutex_alloc);
+ ret=__libc_realloc(ptr, size);
+ pthread_mutex_unlock(&mutex_alloc);
+ __NO_ASYNC_CANCEL_END;
+ return ret;
+}