mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-10-25 10:40:57 +00:00
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