about summary refs log tree commit diff stats
path: root/src/libtools
diff options
context:
space:
mode:
Diffstat (limited to 'src/libtools')
-rw-r--r--src/libtools/static_threads.h1
-rw-r--r--src/libtools/threads.c14
2 files changed, 15 insertions, 0 deletions
diff --git a/src/libtools/static_threads.h b/src/libtools/static_threads.h
index 07907987..f764e6c3 100644
--- a/src/libtools/static_threads.h
+++ b/src/libtools/static_threads.h
@@ -57,6 +57,7 @@ int my_pthread_mutexattr_getrobust(x64emu_t* emu, my_mutexattr_t *attr, void* p)
 int my_pthread_mutexattr_init(x64emu_t* emu, my_mutexattr_t *attr);
 int my___pthread_mutexattr_init(x64emu_t* emu, my_mutexattr_t *attr);
 int my_pthread_mutexattr_setkind_np(x64emu_t* emu, my_mutexattr_t *attr, int k);
+int my_pthread_mutexattr_setprioceiling(x64emu_t* emu, my_mutexattr_t *attr, int p);
 int my_pthread_mutexattr_setprotocol(x64emu_t* emu, my_mutexattr_t *attr, int p);
 int my_pthread_mutexattr_setpshared(x64emu_t* emu, my_mutexattr_t *attr, int p);
 int my_pthread_mutexattr_settype(x64emu_t* emu, my_mutexattr_t *attr, int t);
diff --git a/src/libtools/threads.c b/src/libtools/threads.c
index 3e344e8c..40e7b956 100644
--- a/src/libtools/threads.c
+++ b/src/libtools/threads.c
@@ -930,6 +930,20 @@ EXPORT int my_pthread_mutexattr_setkind_np(x64emu_t* emu, my_mutexattr_t *attr,
 	attr->x86 = mattr.x86;
 	return ret;
 }
+EXPORT int my_pthread_mutexattr_setprioceiling(x64emu_t* emu, my_mutexattr_t *attr, int p)
+{
+#ifndef TERMUX
+	(void)emu;
+	my_mutexattr_t mattr = {0};
+	mattr.x86 = attr->x86;
+	int ret = pthread_mutexattr_setprioceiling(&mattr.nat, p);
+	attr->x86 = mattr.x86;
+	return ret;
+#else
+	(void)emu; (void)attr; (void)p;
+	return 0;
+#endif
+}
 EXPORT int my_pthread_mutexattr_setprotocol(x64emu_t* emu, my_mutexattr_t *attr, int p)
 {
 #ifndef TERMUX