1634 Commits

Author SHA1 Message Date
renovate[bot]
20d665608b chore(deps): update vmactions/netbsd-vm action to v1.4.4 2026-07-26 17:39:56 +00:00
renovate[bot]
0c1d09b2cf chore(deps): update zizmorcore/zizmor-action action to v0.6.1 2026-07-26 17:39:06 +00:00
renovate[bot]
cece4df4db chore(deps): update actions/checkout action to v7.0.1 2026-07-21 18:58:09 +00:00
renovate[bot]
1f63be3a49 chore(deps): update vmactions/netbsd-vm action to v1.4.3 2026-07-21 18:55:59 +00:00
renovate[bot]
c7747d59b0 chore(deps): update vmactions/freebsd-vm action to v1.5.2 2026-07-21 18:54:40 +00:00
renovate[bot]
89d650e38f chore(deps): update vmactions/openbsd-vm action to v1.4.5 2026-07-21 18:53:39 +00:00
renovate[bot]
34831e7095 chore(deps): update zizmorcore/zizmor-action action to v0.6.0 2026-07-15 17:12:26 +00:00
renovate[bot]
bfa8192c4d chore(deps): update vmactions/netbsd-vm action to v1.4.2 2026-07-15 17:11:39 +00:00
renovate[bot]
9527231dfb chore(deps): update vmactions/netbsd-vm action to v1.4.1 2026-07-02 12:30:10 +00:00
Steffen Winter
e6794afb21 ci: bump openbsd version to 7.9 2026-07-02 12:24:28 +00:00
Steffen Winter
757ce259e5 ci: bump freebsd version 2026-07-02 12:23:41 +00:00
ebignumber
83eeecb22b feat: make '=' expand in tree view as well (#1735)
Aligns the behavior of the '=' key with the '+' key in tree view as it already
does for updating the refresh rate.

Closes: https://github.com/aristocratos/btop/issues/1734
2026-06-29 17:05:07 +00:00
Maxim Egorushkin
cf2b0546c7 refactor: deduplicate static vectors and strings (#1666)
Co-authored-by: Maxim Egorushkin <maxim.egorushkin@gmail.com>
2026-06-29 12:35:45 +00:00
renovate[bot]
6a14f461b1 chore(deps): update vmactions/freebsd-vm action to v1.5.0 2026-06-29 12:30:56 +00:00
ebignumber
ecca5e0657 fix: disable und grey-out +/- keys in tree view (#1709)
Disable the +/- keybinds to adjust the update frequency and mark them inactive when the tree view in the process box is selected, as it uses both keybinds with priority.

Closes: https://github.com/aristocratos/btop/issues/1685

---------

Co-authored-by: ebignumber <ebignumber@proton.me>
2026-06-28 07:59:35 +00:00
renovate[bot]
3292dc705b chore(deps): update vmactions/freebsd-vm action to v1.4.9 2026-06-27 09:44:52 +00:00
Doehyun Baek
8813e1ca0a docs: update README for macOS gpu support (#1687)
Closes: https://github.com/aristocratos/btop/issues/1551
2026-06-22 20:25:07 +00:00
renovate[bot]
5759fd0cb5 chore(deps): update zizmorcore/zizmor-action action to v0.5.7 2026-06-22 05:51:47 +00:00
renovate[bot]
f7471686f6 chore(deps): update actions/checkout action to v7 2026-06-20 16:56:30 +00:00
renovate[bot]
9fe6f82ed7 chore(deps): update vmactions/openbsd-vm action to v1.4.4 2026-06-20 16:55:37 +00:00
renovate[bot]
ee450f8c92 chore(deps): update vmactions/freebsd-vm action to v1.4.8 2026-06-20 16:54:45 +00:00
Gerald Pottler
3c7eb7c167 fix: cast io scale value to long long before shift (#1719)
Closes: https://github.com/aristocratos/btop/issues/1718
2026-06-20 16:53:40 +00:00
renovate[bot]
d03b839ec2 chore(deps): update vmactions/netbsd-vm action to v1.4.0 2026-06-06 10:35:23 +00:00
renovate[bot]
160d04a4e7 chore(deps): update vmactions/openbsd-vm action to v1.4.3 2026-06-04 08:42:12 +00:00
Jakob P. Liljenberg
fb3b55365f Merge pull request #1694 from aristocratos/osx-link-frameworks
fix: link against core and io frameworks on all apple hardware
2026-06-03 20:12:55 +02:00
renovate[bot]
ac4e7f0cb3 chore(deps): update actions/checkout action to v6.0.3 2026-06-03 09:09:27 +00:00
Steffen Winter
9213f1d316 fix: link against core and io frameworks on all apple hardware
Closes: https://github.com/aristocratos/btop/issues/1693
2026-06-02 23:31:52 +02:00
Jakob P. Liljenberg
24f2dd29aa Merge pull request #1690 from jsquyres/fix-macos-swap-disk-crash
fix: avoid macOS swap disk crash [AI generated]
2026-06-01 20:50:53 +02:00
Jeff Squyres
b8fb0df377 fix: avoid macOS swap disk crash [AI generated]
Skip the synthetic swap disk entry when collecting filesystem stats on macOS. The swap row is not a real mountpoint, so calling statvfs() on it fails and leaves the async disk-stat future in an error path.

Also release IOKit properties only when IORegistryEntryCreateCFProperties() succeeds and returns a valid object, avoiding an unsafe CFRelease() after failed property creation.
2026-06-01 11:11:05 -04:00
renovate[bot]
3f677920ce Update vmactions/freebsd-vm action to v1.4.6 2026-05-31 11:41:50 +00:00
aristocratos
9b00bbdb8b Fix Makefile colors 2026-05-31 00:38:29 +02:00
Jakob P. Liljenberg
568320f674 Merge pull request #1667 from zzallirog/feat/proc-tree-auto-collapse
proc: add proc_tree_auto_collapse option
2026-05-31 00:05:08 +02:00
zzalli
e79c7fbbe5 proc: add proc_tree_auto_collapse option
Auto-collapse processes with N or more direct children when entering
tree mode. Root-level processes (depth 0 and 1) are never collapsed.

Useful for multi-process apps like Chromium, Firefox, or Electron apps
that spawn dozens of subprocesses and clutter the tree view.

Default is 0 (disabled). Example: proc_tree_auto_collapse = 4
2026-05-31 00:37:02 +03:00
Curtis Doty
e285fd0882 Improve Makefile readability by symbolizing ANSI (#1425)
Co-authored-by: aristocratos <gnmjpl@gmail.com>
2026-05-30 23:32:51 +02:00
Jakob P. Liljenberg
41cd493b6b Merge pull request #1561 from Saphereye/unit-fix
Switch unit string literals to be SI compliant
2026-05-30 22:43:53 +02:00
Jakob P. Liljenberg
3d1d3493f6 Merge pull request #1661 from mgajda/feat/amd-igpu-sysfs-v2
[AI generated] AMD APU/iGPU sysfs backend for GPU monitoring
2026-05-30 22:30:06 +02:00
Jakob P. Liljenberg
88df2ca515 Merge pull request #1663 from jsquyres/fix/log-iso8601-timestamps
fix: use ISO 8601 format for log timestamps [AI generated]
2026-05-30 10:22:21 +02:00
Jakob P. Liljenberg
1cbaf92144 Merge pull request #1674 from jsquyres/fix/sigwinch-resize-reentry
fix: defer SIGWINCH resize handling [AI generated]
2026-05-30 10:20:42 +02:00
Jakob P. Liljenberg
2fb9796e6f Merge pull request #1658 from DerPlayer2001/main
Fix: Macos SIGABRT Crash during SMB TimeMachine Backups [AI generated]
2026-05-30 10:17:22 +02:00
Jakob P. Liljenberg
fd57e9c841 Merge pull request #1648 from NLagwal/fix-macos-regression
fix: gate Apple Silicon GPU support to unbreak intel Mac builds (#1641)
2026-05-30 10:12:39 +02:00
Jakob P. Liljenberg
2bc18e826e Merge pull request #1662 from jsquyres/fix/collector-futures
Fix possible thread deadlocks and power-event-based false stall detections
2026-05-30 10:11:22 +02:00
DerPlayer
2e7d8d395e Fix: Macos SIGABRT Crash during SMB TimeMachine Backups 2026-05-29 14:02:10 +02:00
renovate[bot]
fa202202c2 Update vmactions/openbsd-vm action to v1.4.2 2026-05-29 08:11:39 +00:00
renovate[bot]
dac428bec9 Update vmactions/netbsd-vm action to v1.3.9 2026-05-29 08:10:30 +00:00
Jakob P. Liljenberg
42267b32b6 Merge pull request #1652 from chiluk/chiluk/1651-fix-amd-gpu-graph
Fix btop with amd gpu on rocm 7 as in Ubuntu 26.04
2026-05-28 13:09:12 +02:00
renovate[bot]
83e44ff38d Update dependency macos to v26 2026-05-25 11:55:10 +00:00
renovate[bot]
8764ee5b25 Update vmactions/openbsd-vm action to v1.4.1 2026-05-25 11:48:40 +00:00
Jeff Squyres
43bfed7202 fix: defer SIGWINCH resize handling [AI generated]
Avoid running the full terminal resize path from the signal handler so resize notifications cannot reenter term_resize() while it already holds its guard.
2026-05-24 09:26:21 -04:00
Jeff Squyres
08d722aa89 fix: make wait_for timeout suspend-aware [AI generated]
Change atomic_waiting_lock::wait_for() so its timeout is measured with
an uptime clock that pauses during system suspend, while still using the
condition variable for wakeups.

Previously, std::condition_variable::wait_for() owned the timeout. If
the system suspended while the main thread was waiting for the runner
to finish, the condition-variable timeout clock could include the
suspend duration (this definitely happens on macOS). On resume, the
wait could immediately time out even though the runner had only had
milliseconds of awake time to make progress.

The new uptime_micros() helper uses the best available clock on each
platform:

- macOS: CLOCK_UPTIME_RAW (pauses during Sleep/Deep Idle)
- FreeBSD: CLOCK_UPTIME (explicitly excludes suspend time)
- Linux/OpenBSD/NetBSD: CLOCK_MONOTONIC (excludes suspend on Linux;
  best available on other platforms)

This preserves the condition-variable locking model, but makes the
stall timeout count *awake* time rather than *wall clock* or *suspend*
time.

Co-authored-by: ItsMeSamey <sameychain5041@gmail.com>
2026-05-23 09:39:12 -04:00
Jeff Squyres
3c6cfda26a fix(osx): use futures for sensor collection, remove pthread_cancel [AI generated]
Replace synchronous IOKit HID sensor reads with std::async futures
and remove all pthread_cancel() calls from the runner stall-recovery
path. This addresses the macOS/NetBSD deadlocks reported in #1349.

The root cause of the deadlocks is that pthread_cancel() does not
reliably invoke C++ destructors on macOS (libc++) or NetBSD
(libstdc++), leaving mutexes and semaphore internals wedged when the
runner thread is cancelled mid-collection.

Sensor collection via futures:

  Wrap the IOKit HID thermal sensor reads (getSensors) and SMC
  temperature reads in a std::async future, following the same pattern
  already used for statvfs in the Linux disk collector. Each collection
  cycle checks if the previous cycle's future is ready (non-blocking),
  grabs the result if so, and launches a new async. Temperature
  readings are delayed by at most one collection cycle (~2s), which is
  imperceptible to users.

  This moves the dominant cost (~130ms mean, ~700ms worst case from
  77 Mach IPC roundtrips to IOKit HID sensors) off the runner's
  critical path, reducing the runner cycle from ~180ms to ~50ms.

Remove pthread_cancel from stall recovery:

  Replace the 5-second timeout + pthread_cancel + thread recreation
  logic with a 10-second warning + 30-second clean exit. If the runner
  is still stalled after 30 seconds (which should be nearly impossible
  with sensor reads off the critical path), btop exits cleanly rather
  than risking undefined behavior from pthread_cancel.

  This follows the maintainer's recommendation: remove pthread_cancel
  for BSD-derived platforms and exit with an error if the thread
  stalls, with an extended timeout to allow recovery from transient
  OS-level delays (sleep/wake transitions, IOKit contention).

  All three timeout sites are updated:
  - Runner::run(): 10s warning, 30s exit (was 5s + pthread_cancel)
  - Runner::stop(): 30s exit (was 5s)
  - Runner thread loop: 30s (was 5s)
  - clean_quit(): remove pthread_cancel fallback from thread join

Fixes #1349
2026-05-23 09:32:14 -04:00