summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ci: Update to macos-15Tavian Barnes8 days1-4/+2
|
* tests/sighook: Fix Valgrind compatibilityTavian Barnes10 days1-39/+43
| | | | | | | | | | | | | | | | | | | | Valgrind does not deliver async signals in a timely manner; by default, it polls for new signals every 1,000 basic blocks. That means we can get SIGALRM delivered after timer_delete(), or kill(SIGSEGV) never delivered after pause(). Fix the timer_delete() issue by reordering the cleanup path. Valgrind always polls pending signals after pthread_sigmask(), so call that between timer_delete() and sigunhook(). Fix the pause() issue by sleeping in a loop instead. Note that --fair-sched=yes is required to avoid starvation of the background thread. Link: https://bugs.kde.org/show_bug.cgi?id=492678 Link: https://bugs.kde.org/show_bug.cgi?id=343357 Link: https://bugs.kde.org/show_bug.cgi?id=498936
* sighook: Fix sigreset() error handlingTavian Barnes11 days1-9/+16
|
* Release 4.0.54.0.5Tavian Barnes13 days4-4/+22
|
* tests: Add a test for sigmask restorationTavian Barnes13 days2-0/+5
|
* sighook: Don't forget to check `initialized` in sigreset()Tavian Barnes13 days1-0/+4
|
* sighook: Fix up siginit() error pathsTavian Barnes13 days1-8/+14
|
* xspawn: Unblock signals between fork() and exec()Tavian Barnes13 days1-2/+15
| | | | | | Otherwise the child process runs with all signals blocked. Fixes: 423cfa4 ("xspawn: Mask signals before fork()")
* sighook: New sigreset() function to reset all handlersTavian Barnes13 days2-3/+45
|
* sighook: Convert siglist to a more general rcu_list typeTavian Barnes13 days1-52/+66
|
* build: Feature-detect #pragma nounroll supportTavian Barnes2025-01-173-2/+13
|
* list: Don't use leading underscores for globalsTavian Barnes2025-01-161-6/+6
|
* ioq: Don't unroll the spin loopTavian Barnes2025-01-162-1/+15
|
* ioq: Prefetch slots with a write intentTavian Barnes2025-01-161-1/+1
|
* build: Check for compound literal storage-class supportTavian Barnes2025-01-073-1/+8
| | | | This lets us use them on GCC >= 13, even before C23.
* configure: Suggest --enable-release over RELEASE=y etc.Tavian Barnes2025-01-071-0/+19
|
* configure: Reduce redundant info in CONFFLAGS for bfs --versionTavian Barnes2025-01-071-1/+8
|
* sighook: Add some missing fatal signalsTavian Barnes2024-12-241-5/+14
|
* sighook: Preserve the exact siginfo_t in reraise() on LinuxTavian Barnes2024-12-241-3/+16
| | | | Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=66dd34ad31e5963d72a700ec3f2449291d322921
* sighook: Always re-raise faults on macOSTavian Barnes2024-12-222-0/+11
| | | | | | | | | | macOS always fills in si_code for SIG{BUS,ILL,SEGV} as if it were a real hardware fault, so returning from the handler is not guaranteed to re- trigger the signal. Fixes: aecdabb ("sighook: Return instead of re-raising for faults") Link: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2386463/4/util/posix/signals_test.cc Link: https://github.com/chromium/crashpad/commit/e0d8a0aa01ac176804077f1f128ccc894c098f79
* tests/sighook: Add missing #include <sys/wait.h>Tavian Barnes2024-12-191-2/+3
|
* tests/gnu: Add an -ignore_readdir_race test for removed directoriesTavian Barnes2024-12-172-0/+7
| | | | Link: https://savannah.gnu.org/bugs/index.php?45930
* tests/sighook: Add atsigexit() testsTavian Barnes2024-12-171-1/+77
|
* sanity: New sanitize_resize() functionTavian Barnes2024-12-162-16/+33
| | | | | This wraps __sanitizer_annotate_contiguous_container() to give byte-precise tracking of usable allocation sizes with ASan.
* sanity: Get rid of sanitize_ignore()Tavian Barnes2024-12-162-11/+6
| | | | | It's probably nicer to avoid evaluating expensive arguments when not sanitizing, rather than relying on the optimizer to clean them up.
* ci: Update VM versionsTavian Barnes2024-12-101-3/+3
|
* build(deps): bump cross-platform-actions/action from 0.25.0 to 0.26.0dependabot[bot]2024-12-091-3/+3
| | | | | | | | | | | | | | | Bumps [cross-platform-actions/action](https://github.com/cross-platform-actions/action) from 0.25.0 to 0.26.0. - [Release notes](https://github.com/cross-platform-actions/action/releases) - [Changelog](https://github.com/cross-platform-actions/action/blob/master/changelog.md) - [Commits](https://github.com/cross-platform-actions/action/compare/v0.25.0...v0.26.0) --- updated-dependencies: - dependency-name: cross-platform-actions/action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
* docs/bfs.1: Add copyright commentsTavian Barnes2024-12-041-0/+2
|
* ioq: Refactor ioq_ring_probe_flags()Tavian Barnes2024-12-041-11/+13
|
* tests/sighook: Test the SH_ONESHOT flagTavian Barnes2024-12-041-2/+28
|
* ioq: Try spinning before blocking in ioq_slot_wait()Tavian Barnes2024-12-031-1/+17
|
* ioq: Submit and pop requests in batchesTavian Barnes2024-12-035-17/+44
| | | | | The new ioq_submit() function is now necessary to call to ensure the pending request batch is flushed.
* ioq: Add more io_uring setup flagsTavian Barnes2024-12-031-20/+55
|
* ioq: Refactor io_uring submission logicTavian Barnes2024-12-031-94/+145
|
* ioq: Use ioq_batch for both pushing and poppingTavian Barnes2024-12-031-47/+84
|
* ioq: Add a hash function between slots and monitorsTavian Barnes2024-12-031-1/+11
| | | | | | This helps avoid situations where multiple waiters block on different slots using the same monitor, which happened more often than expected due to correlations caused by batching.
* ioq: Prefetch pointers before popping themTavian Barnes2024-12-032-8/+10
| | | | | Also, cache-align struct ioq_ent to avoid false sharing when two workers are handling neighbouring requests.
* bench/ioq: New ioq microbenchmarkTavian Barnes2024-12-032-1/+332
|
* ioq: Add an ioq_nop() operation for benchmarkingTavian Barnes2024-12-023-0/+62
|
* xtime: New timespec utility functionsTavian Barnes2024-12-023-23/+95
|
* sighook: New SH_ONESHOT flagTavian Barnes2024-12-022-1/+21
|
* bfstd: Add more strto*() wrappersTavian Barnes2024-12-022-24/+69
|
* ioq: Set the worker thread names to ioq-%dTavian Barnes2024-11-271-2/+8
|
* thread: New thread_setname() functionTavian Barnes2024-11-275-0/+37
|
* sighook: Return instead of re-raising for faultsTavian Barnes2024-11-231-5/+11
| | | | | | | | | | | This makes the death look exactly like it would if we didn't handle the signal at all. Coredumps will point at the right instruction, segfaults will get logged in dmesg again, etc. Technically POSIX says this is undefined, but if we get a fault, we've already done something undefined anyway ;) Link: https://github.com/rust-lang/rust/issues/26458
* sighook: Check for SA_RESTART before using itTavian Barnes2024-11-231-1/+7
| | | | QNX doesn't support SA_RESTART.
* bfstd: makedev() takes 3 arguments on QNXTavian Barnes2024-11-231-1/+3
|
* prelude: Define _QNX_SOURCETavian Barnes2024-11-231-0/+5
|
* build: Check for -pthread before using itTavian Barnes2024-11-232-2/+12
| | | | | | QNX's qcc, for example, will complain that cc1: error: command-line option '-pthread' is valid for the driver but not for C
* tests/getopts: Remove unused variableTavian Barnes2024-11-211-1/+0
|