Restore pin-thread-to-processor0! export for app.ss compatibility
ober
8fad97207afb7eccc4e75e391a6f4ee96b1a99f2
--- a/lib/jerboa-emacs/async.sls +++ b/lib/jerboa-emacs/async.sls @@ -4,13 +4,13 @@ (library (jerboa-emacs async) (export ui-queue-push! ui-queue-drain! spawn-worker - async-process! async-process-stream! async-read-file! - async-write-file! async-eval! schedule-periodic! - master-timer-tick! current-time-ms *file-index* - start-file-indexer! stop-file-indexer! file-index-lookup - *git-status-cache* start-git-watcher! stop-git-watcher! - flycheck-trigger! start-flycheck-watcher! - stop-flycheck-watcher!) + pin-thread-to-processor0! async-process! + async-process-stream! async-read-file! async-write-file! + async-eval! schedule-periodic! master-timer-tick! + current-time-ms *file-index* start-file-indexer! + stop-file-indexer! file-index-lookup *git-status-cache* + start-git-watcher! stop-git-watcher! flycheck-trigger! + start-flycheck-watcher! stop-flycheck-watcher!) (import (except (chezscheme) make-hash-table hash-table? iota \x31;+ \x31;- getenv path-extension path-absolute? thread? make-mutex @@ -20,6 +20,9 @@ (std misc atom) (std sugar) (std srfi srfi-13) (jerboa-emacs core) (except (jerboa core) time->seconds) (jerboa runtime)) + (def (pin-thread-to-processor0! thread) + "No-op on Chez — Qt thread affinity is handled by architecture:\n all Qt calls run on the primordial thread, blocking work in workers." + #f) (def (spawn-worker name thunk) "Spawn a background worker thread for blocking operations.\n Uses fork-thread which properly decrements S_nthreads on completion.\n The thunk runs in a background thread — do NOT call Qt FFI from it.\n Post Qt operations back to the UI thread via ui-queue-push!." (let ([t (make-thread --- a/src/jerboa-emacs/async.ss +++ b/src/jerboa-emacs/async.ss @@ -22,6 +22,9 @@ ;; Background worker spawn-worker + ;; Thread pinning (no-op on Chez — Qt affinity handled by architecture) + pin-thread-to-processor0! + ;; Async command runner async-process! async-process-stream! @@ -58,6 +61,15 @@ :jerboa-emacs/core) ;;;============================================================================ +;;; Thread Pinning (no-op on Chez) +;;;============================================================================ + +(def (pin-thread-to-processor0! thread) + "No-op on Chez — Qt thread affinity is handled by architecture: + all Qt calls run on the primordial thread, blocking work in workers." + #f) + +;;;============================================================================ ;;; Background Worker ;;;============================================================================