diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/libtools/threads.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libtools/threads.c b/src/libtools/threads.c index dc6ce1cd..2a69a278 100755 --- a/src/libtools/threads.c +++ b/src/libtools/threads.c @@ -679,7 +679,9 @@ pthread_mutex_t* getAlignedMutex(pthread_mutex_t* m) int r; k = kh_put(mutex, unaligned_mutex, (uintptr_t)m, &r); pthread_mutex_t* ret = kh_value(unaligned_mutex, k) = (pthread_mutex_t*)calloc(1, sizeof(pthread_mutex_t)); - memcpy(ret, m, sizeof(pthread_mutex_t)); // probably need some magic here on ARM64 to convert x86_64 mutex structure + size_t sz = sizeof(pthread_mutex_t); + if(sz>40) sz = 40; // 40 is sizeof(pthread_mutex_t) on x86_64 + memcpy(ret, m, sz); // probably need some magic here on ARM64 to convert x86_64 mutex structure return ret; } EXPORT int my_pthread_mutex_destroy(pthread_mutex_t *m) |