mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 03:27:39 +00:00
3c61a541bd
This is one of the few POSIX APIs that was missing. It lets you choose a monotonic clock for your condition variables. This might improve perf on some platforms. It might also grant more flexibility with NTP configs. I know Qt is one project that believes it needs this. To introduce this, I needed to change some the *NSYNC APIs, to support passing a clock param. There's also new benchmarks, demonstrating Cosmopolitan's supremacy over many libc implementations when it comes to mutex performance. Cygwin has an alarmingly bad pthread_mutex_t implementation. It is so bad that they would have been significantly better off if they'd used naive spinlocks. |
||
---|---|---|
.. | ||
BUILD.mk | ||
generate.sh | ||
kmp.h | ||
kmp_affinity.cpp | ||
kmp_affinity.h | ||
kmp_alloc.cpp | ||
kmp_atomic.cpp | ||
kmp_atomic.h | ||
kmp_barrier.cpp | ||
kmp_barrier.h | ||
kmp_cancel.cpp | ||
kmp_collapse.cpp | ||
kmp_collapse.h | ||
kmp_config.h | ||
kmp_csupport.cpp | ||
kmp_debug.cpp | ||
kmp_debug.h | ||
kmp_debugger.cpp | ||
kmp_debugger.h | ||
kmp_dispatch.cpp | ||
kmp_dispatch.h | ||
kmp_dispatch_hier.h | ||
kmp_environment.cpp | ||
kmp_environment.h | ||
kmp_error.cpp | ||
kmp_error.h | ||
kmp_ftn_cdecl.cpp | ||
kmp_ftn_entry.h | ||
kmp_ftn_os.h | ||
kmp_global.cpp | ||
kmp_gsupport.cpp | ||
kmp_i18n.cpp | ||
kmp_i18n.h | ||
kmp_i18n_default.inc | ||
kmp_i18n_id.inc | ||
kmp_io.cpp | ||
kmp_io.h | ||
kmp_itt.cpp | ||
kmp_itt.h | ||
kmp_itt.inc | ||
kmp_lock.cpp | ||
kmp_lock.h | ||
kmp_omp.h | ||
kmp_os.h | ||
kmp_platform.h | ||
kmp_runtime.cpp | ||
kmp_safe_c_api.h | ||
kmp_sched.cpp | ||
kmp_settings.cpp | ||
kmp_settings.h | ||
kmp_stats.cpp | ||
kmp_stats.h | ||
kmp_stats_timing.cpp | ||
kmp_stats_timing.h | ||
kmp_str.cpp | ||
kmp_str.h | ||
kmp_stub.h | ||
kmp_taskdeps.cpp | ||
kmp_taskdeps.h | ||
kmp_tasking.cpp | ||
kmp_threadprivate.cpp | ||
kmp_utility.cpp | ||
kmp_utils.h | ||
kmp_version.cpp | ||
kmp_version.h | ||
kmp_wait_release.cpp | ||
kmp_wait_release.h | ||
kmp_wrapper_getpid.h | ||
kmp_wrapper_malloc.h | ||
omp-tools.h | ||
omp.h | ||
ompd-specific.cpp | ||
ompd-specific.h | ||
ompt-event-specific.h | ||
ompt-general.cpp | ||
ompt-internal.h | ||
ompt-specific.cpp | ||
ompt-specific.h | ||
ompx.h | ||
README.cosmo | ||
util1.cpp | ||
util2.S |
DESCRIPTION libomp - LLVM's Compiler Runtime for Multiprocessing ORIGIN https://github.com/llvm/llvm-project/ commit 70c3e30e01bd123e87824e36b6e38a39451ac28d date Mon Jan 29 09:54:34 2024 +0800 LOCAL CHANGES - Use Cosmo's gettid() function - Ran third_party/openmp/generate.sh - Removed usage of syscall() function - Only enable hidden helper on GNU/Systemd - Made __kmp_get_load_balance() portable at runtime - Made __kmp_affinity_get_offline_cpus() portable at runtime - Turned off quad floating point support (why does openmp have it?) - Remove bloat for checking if multiple OpenMP libraries are linked