diff --git a/Libraries/LibC/unistd.cpp b/Libraries/LibC/unistd.cpp index 6881d2e33b..831f9c99ad 100644 --- a/Libraries/LibC/unistd.cpp +++ b/Libraries/LibC/unistd.cpp @@ -538,10 +538,13 @@ int ftruncate(int fd, off_t length) __RETURN_WITH_ERRNO(rc, rc, -1); } +__thread int t_cached_tid = -1; + int gettid() { - int rc = syscall(SC_gettid); - __RETURN_WITH_ERRNO(rc, rc, -1); + if (t_cached_tid == -1) + t_cached_tid = syscall(SC_gettid); + return t_cached_tid; } int donate(int tid)