qthreads
qthreads copied to clipboard
Lightweight locality-aware user-level threading runtime.
Noticed this while fixing #224. Something's off on our detection logic for the `HAVE_GCC_INLINE_ASSEMBLY` macro on ARM64. That said, I'm mainly seeing this in older sections of code that we...
We have a ton of internal implementations of various atomic operations that use either the old `__sync` gcc intrinsics or just use assembly directly. Given that we already require C11...
Noticed this in CI. sync_workers occasionally hangs when building with Clang on Linux. This may be related to https://github.com/sandialabs/qthreads/issues/145, but I'm creating a separate issue for this until that can...
There's an option in our build system for lock-free FEBs that swaps in a lock-free hash table implementation. This seems like the kind of thing that we'd want on by...
While fixing #186, I noticed that there's an implicit assumption that atomics are trivially initializable. This is fine since it's true on all the architectures we currently support, but in...
We currently have an old header generation script to correctly pull in the integer types that are normally defined in `stdint.h`. It existed primarily for compatibility with implementations that didn't...
Found via a thread sanitizer warning in the `external_syncvar` test. There's a mutex unlock of an already unlocked mutex at https://github.com/sandialabs/qthreads/blob/d6ce514a70c65b74c5e04906615ec51c7f288e0f/src/syncvar.c#L312
Given that we now have a hard dependency on `stdatomic.h`, we should also drop our old hand-implemented atomics entirely to reduce the maintenance burden and opportunities for bugs going forward.
Quite a few of our configure options can be removed in the interest of speeding up build times. Probably good to handle this around the same time as https://github.com/sandialabs/qthreads/issues/167.
Again, unclear to what extent these are actual failures vs just needing some additional work to enable thread sanitizer, however all the following fail with thread sanitizer enabled on clang...