Repository navigation
0.17.1 --- kal_task_current without a system call - #35
Merged
Merged
Conversation
…cord the system's library keeps, without a system call Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
kal_task_currentissuedthread_selfidat every call. openkal-musl findserrno, thread-specific data and every emulated thread-local variable of an ok image through it: 1.58 million calls in oneclangd --checkof mcppls-clangd's freestanding acceptance case (counted on Linux with an instrumented okrun). That was the whole of clangd.okb's difference from the native clangd on the macOS arm64 runners (1.25–1.96× across six runs; the same aarch64 image runs at 1.02× on Linux arm64, where openkal-linux caches the identifier per thread). Forcing the system call per answer on Linux reproduces the direction: 851 ms → 985 ms median.pthread_threadid_np(NULL, &id)answers the same kernel identifier from the record libSystem keeps for each thread, without entering the kernel; the system call remains for a thread that record lacks. The value is unchanged, so nothing above observes a difference but the cost._pthread_threadid_npjoins the permitted imports andport/libSystem.tbd(a name no C library in this ecosystem defines).Co-authored-by: speak-agent 248744407+speak-agent@users.noreply.github.com