diff --git a/docs/status.md b/docs/status.md
index e6fb7a4..c119439 100644
--- a/docs/status.md
+++ b/docs/status.md
@@ -14,6 +14,7 @@
   * `glob`/`globfree` (adding <glob.h>)
   * `hcreate`/hcreate_r`/`hdestroy`/`hdestroy_r`/`hsearch`/`hsearch_r` (completing <search.h>)
   * `iconv`/`iconv_close`/`iconv_open` (adding <iconv.h>)
+  * `pthread_setschedprio`
   * <spawn.h>
   * `syncfs`
 
@@ -89,7 +90,6 @@
 pthread_mutexattr_setrobust
 pthread_setcancelstate
 pthread_setcanceltype
-pthread_setschedprio
 pthread_testcancel
 sockatmark
 swab
diff --git a/libc/bionic/pthread_setschedparam.cpp b/libc/bionic/pthread_setschedparam.cpp
index 3e80959..10826d1 100644
--- a/libc/bionic/pthread_setschedparam.cpp
+++ b/libc/bionic/pthread_setschedparam.cpp
@@ -27,9 +27,10 @@
  */
 
 #include <errno.h>
+#include <pthread.h>
+#include <sched.h>
 
 #include "private/ErrnoRestorer.h"
-#include "pthread_internal.h"
 
 int pthread_setschedparam(pthread_t t, int policy, const sched_param* param) {
   ErrnoRestorer errno_restorer;
@@ -39,3 +40,13 @@
 
   return (sched_setscheduler(tid, policy, param) == -1) ? errno : 0;
 }
+
+int pthread_setschedprio(pthread_t t, int priority) {
+  ErrnoRestorer errno_restorer;
+
+  pid_t tid = pthread_gettid_np(t);
+  if (tid == -1) return ESRCH;
+
+  sched_param param = { .sched_priority = priority };
+  return (sched_setparam(tid, &param) == -1) ? errno : 0;
+}
diff --git a/libc/include/pthread.h b/libc/include/pthread.h
index 32315fe..2253e0d 100644
--- a/libc/include/pthread.h
+++ b/libc/include/pthread.h
@@ -220,6 +220,7 @@
 int pthread_setname_np(pthread_t __pthread, const char* __name);
 
 int pthread_setschedparam(pthread_t __pthread, int __policy, const struct sched_param* __param);
+int pthread_setschedprio(pthread_t __pthread, int __priority) __INTRODUCED_IN_FUTURE;
 
 int pthread_setspecific(pthread_key_t __key, const void* __value);
 
diff --git a/libc/libc.arm.map b/libc/libc.arm.map
index 82d6872..981dd59 100644
--- a/libc/libc.arm.map
+++ b/libc/libc.arm.map
@@ -1362,6 +1362,7 @@
     posix_spawn_file_actions_destroy;
     posix_spawn_file_actions_init;
     posix_spawnp;
+    pthread_setschedprio;
     sethostent;
     setnetent;
     setprotoent;
diff --git a/libc/libc.arm64.map b/libc/libc.arm64.map
index 5dfe93b..29c5235 100644
--- a/libc/libc.arm64.map
+++ b/libc/libc.arm64.map
@@ -1282,6 +1282,7 @@
     posix_spawn_file_actions_destroy;
     posix_spawn_file_actions_init;
     posix_spawnp;
+    pthread_setschedprio;
     sethostent;
     setnetent;
     setprotoent;
diff --git a/libc/libc.map.txt b/libc/libc.map.txt
index 8f7b599..eafbbd7 100644
--- a/libc/libc.map.txt
+++ b/libc/libc.map.txt
@@ -1387,6 +1387,7 @@
     posix_spawn_file_actions_destroy;
     posix_spawn_file_actions_init;
     posix_spawnp;
+    pthread_setschedprio;
     sethostent;
     setnetent;
     setprotoent;
diff --git a/libc/libc.mips.map b/libc/libc.mips.map
index 3a039c5..a32131f 100644
--- a/libc/libc.mips.map
+++ b/libc/libc.mips.map
@@ -1346,6 +1346,7 @@
     posix_spawn_file_actions_destroy;
     posix_spawn_file_actions_init;
     posix_spawnp;
+    pthread_setschedprio;
     sethostent;
     setnetent;
     setprotoent;
diff --git a/libc/libc.mips64.map b/libc/libc.mips64.map
index 5dfe93b..29c5235 100644
--- a/libc/libc.mips64.map
+++ b/libc/libc.mips64.map
@@ -1282,6 +1282,7 @@
     posix_spawn_file_actions_destroy;
     posix_spawn_file_actions_init;
     posix_spawnp;
+    pthread_setschedprio;
     sethostent;
     setnetent;
     setprotoent;
diff --git a/libc/libc.x86.map b/libc/libc.x86.map
index 2b165cc..f1308ea 100644
--- a/libc/libc.x86.map
+++ b/libc/libc.x86.map
@@ -1344,6 +1344,7 @@
     posix_spawn_file_actions_destroy;
     posix_spawn_file_actions_init;
     posix_spawnp;
+    pthread_setschedprio;
     sethostent;
     setnetent;
     setprotoent;
diff --git a/libc/libc.x86_64.map b/libc/libc.x86_64.map
index 5dfe93b..29c5235 100644
--- a/libc/libc.x86_64.map
+++ b/libc/libc.x86_64.map
@@ -1282,6 +1282,7 @@
     posix_spawn_file_actions_destroy;
     posix_spawn_file_actions_init;
     posix_spawnp;
+    pthread_setschedprio;
     sethostent;
     setnetent;
     setprotoent;
diff --git a/tests/pthread_test.cpp b/tests/pthread_test.cpp
index f342577..85978bd 100755
--- a/tests/pthread_test.cpp
+++ b/tests/pthread_test.cpp
@@ -566,6 +566,18 @@
   EXPECT_EQ(ESRCH, pthread_setschedparam(null_thread, policy, &param));
 }
 
+TEST_F(pthread_DeathTest, pthread_setschedprio__no_such_thread) {
+  pthread_t dead_thread;
+  MakeDeadThread(dead_thread);
+
+  EXPECT_DEATH(pthread_setschedprio(dead_thread, 123), "invalid pthread_t");
+}
+
+TEST_F(pthread_DeathTest, pthread_setschedprio__null_thread) {
+  pthread_t null_thread = 0;
+  EXPECT_EQ(ESRCH, pthread_setschedprio(null_thread, 123));
+}
+
 TEST_F(pthread_DeathTest, pthread_join__no_such_thread) {
   pthread_t dead_thread;
   MakeDeadThread(dead_thread);
@@ -2147,3 +2159,12 @@
     ASSERT_EQ(0, munmap(pages[i], kPageSize));
   }
 }
+
+TEST(pthread, pthread_setschedparam) {
+  sched_param p = { .sched_priority = INT_MIN };
+  ASSERT_EQ(EINVAL, pthread_setschedparam(pthread_self(), INT_MIN, &p));
+}
+
+TEST(pthread, pthread_setschedprio) {
+  ASSERT_EQ(EINVAL, pthread_setschedprio(pthread_self(), INT_MIN));
+}
