;ELC   
;;; Compiled
;;; in Emacs version 30.2
;;; with all optimizations.


#@132 Handle thread events, propagated by `thread-signal'.
An EVENT has the format
  (thread-event THREAD ERROR-SYMBOL DATA)

(fn EVENT)
(require 'backtrace)
(defalias 'thread-handle-event #[257 "\211:\205  \211@\300=\205  \211G\301U\205  \211A@AA\302\303#\266\202\207" [thread-event 4 message "Error %s: %S"] 7 (#$ . 84) "e"])#@62 Seconds between automatic refreshes of the *Threads* buffer.#@2 #@46 Local keymap for `thread-list-mode' buffers.
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable thread-list-refresh-seconds funcall function #[0 "\300\207" [0.5] 1 (#$ . 479)] (#$ . 414) :group thread-list :type number :version "27.1"] 10)
(defvar thread-list-mode-map (define-keymap :parent tabulated-list-mode-map "b" 'thread-list-pop-to-backtrace "s" nil "s q" 'thread-list-send-quit-signal "s e" 'thread-list-send-error-signal :menu '("Threads" ["Show backtrace" thread-list-pop-to-backtrace t] ["Send Quit Signal" thread-list-send-quit-signal t] ["Send Error Signal" thread-list-send-error-signal t])) (#$ . 485))
(defvar thread-list-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [thread-list-mode-hook variable-documentation put "Hook run after entering `thread-list-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp thread-list-mode-map definition-name thread-list-mode] 4)
(defvar thread-list-mode-map (make-sparse-keymap))#@251 Major mode for monitoring Lisp threads.

In addition to any hooks its parent mode `tabulated-list-mode' might
have run, this mode runs the hook `thread-list-mode-hook', as the final
or penultimate step during initialization.

\{thread-list-mode-map}
(byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\307!\204* \303\307\310\311#\210\312\307\306\307!\203& \313\202( \314 \"\210\307\302N\2048 \303\307\302\304\315!#\210\306\300!\204X \303\300\310\311#\210\312\300\306\300!\203P \313\202V \316\300\313\"\210\"\210\300\302N\204f \303\300\302\304\317!#\210\320\321!\203t \321\311\322\"\210\202z \303\311\323\322#\210\313\207" [thread-list-mode-abbrev-table thread-list-mode-map variable-documentation put purecopy "Keymap for `thread-list-mode'." boundp thread-list-mode-syntax-table definition-name thread-list-mode defvar-1 nil make-syntax-table "Syntax table for `thread-list-mode'." define-abbrev-table "Abbrev table for `thread-list-mode'." fboundp derived-mode-set-parent tabulated-list-mode derived-mode-parent] 5)
(defalias 'thread-list-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204' \316\317 \"\210\320\f!\211\2035 \211\321 =\203; \322\f\323 \"\210\210\324\325\"\204R =\204R \326\325C#\210\327!\210\330\f!\210\331\211 \332H@C!\333\"\334 )\210\335\336!\207" [delay-mode-hooks major-mode mode-name thread-list-mode-map thread-list-mode-syntax-table thread-list-mode-abbrev-table make-local-variable t tabulated-list-mode thread-list-mode "Thread-List" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table [("Thread Name" 20 t) ("Status" 10 t) ("Blocked On" 30 t)] 0 thread-list--get-entries tabulated-list-init-header run-mode-hooks thread-list-mode-hook local-abbrev-table tabulated-list-format tabulated-list-sort-key tabulated-list-entries] 6 (#$ . 1623) nil])#@28 Display a list of threads.
(defalias 'list-threads #[0 "\302\300!\203\n \204 \303\304!\210\305\306!r\211q\210\307\310!\204% \310 \210\311	\312\313$\210\314 )\210\315!\207" [main-thread thread-list-refresh-seconds boundp error "Threads are not supported in this configuration" get-buffer-create "*Threads*" derived-mode-p thread-list-mode run-at-time nil thread-list--timer-func revert-buffer switch-to-buffer] 6 (#$ . 3631) nil])#@60 Revert BUFFER and set a timer to do it again.

(fn BUFFER)
(defalias 'thread-list--timer-func #[257 "\301!\205 r\211q\210\302 )\210\303\304\305$\207" [thread-list-refresh-seconds buffer-live-p revert-buffer run-at-time nil thread-list--timer-func] 6 (#$ . 4070)])#@63 Return tabulated list entries for the currently live threads.
(defalias 'thread-list--get-entries #[0 "\300\301 \211\203* \211@\302!\211\242\243\211\242\243\303\304!#DB\262\266A\202 \210\207" [nil all-threads thread-list--get-status vector thread-list--name] 13 (#$ . 4343)])#@154 Describe the status of THREAD.
Return a list of two strings, one describing THREAD's status, the
other describing THREAD's blocker, if any.

(fn THREAD)
(defalias 'thread-list--get-status #[257 "\300!\204 \301\207\211\302 =\203 \303\207\304!\211\203 \305\306!D\207\307\207" [thread-live-p ("Finished" #1="") current-thread ("Running" #1#) thread--blocker "Blocked" prin1-to-string ("Yielded" #1#)] 6 (#$ . 4639)])#@44 Send a quit signal to the thread at point.
(defalias 'thread-list-send-quit-signal #[0 "\300\301!\207" [thread-list--send-signal quit] 2 (#$ . 5064) nil])#@46 Send an error signal to the thread at point.
(defalias 'thread-list-send-error-signal #[0 "\300\301!\207" [thread-list--send-signal error] 2 (#$ . 5224) nil])#@119 Send the specified SIGNAL to the thread at point.
Ask for user confirmation before signaling the thread.

(fn SIGNAL)
(defalias 'thread-list--send-signal #[257 "\300\301\206 `\302\"\262\303!\203+ \304\305\306#!\205. \303!\203' \307\300#\207\310\311!\207\310\311!\207" [nil get-text-property tabulated-list-id thread-live-p y-or-n-p format "Send %s signal to %s? " thread-signal message "This thread is no longer alive"] 7 (#$ . 5389)])#@60 Thread whose backtrace is displayed in the current buffer.
(defvar thread-list-backtrace--thread nil (#$ . 5839))#@48 Display the backtrace for the thread at point.
(make-variable-buffer-local 'thread-list-backtrace--thread)
(defalias 'thread-list-pop-to-backtrace #[0 "\302\303\206 `\304\"\262\305!\2033 \306\307!\310!\210\311\312!\204( \312 \210\313\314\315\"\210\316\315 \210\317 \210eb\207\320\321!\207" [backtrace-insert-header-function thread-list-backtrace--thread nil get-text-property tabulated-list-id thread-live-p get-buffer-create "*Thread Backtrace*" pop-to-buffer derived-mode-p backtrace-mode add-hook backtrace-revert-hook thread-list-backtrace--revert-hook-function thread-list-backtrace--insert-header backtrace-print message "This thread is no longer alive"] 5 (#$ . 5958) nil])
(defalias 'thread-list-backtrace--revert-hook-function #[0 "\302!\205\f \303\304\305!\"\211\207" [thread-list-backtrace--thread backtrace-frames thread-live-p mapcar thread-list--make-backtrace-frame backtrace--frames-from-thread] 4])#@31 

(fn (EVALD FUN &rest ARGS))
(defalias 'thread-list--make-backtrace-frame #[128 "\211G\300U\203\f \211\242\202 \301\302\303GD\"\211A\203! \211A\262\242\202( \301\302\303GD\"\211A\262\242\304\305\306\211\211\211&\207" [1 signal wrong-number-of-arguments thread-list--make-backtrace-frame record backtrace-frame nil] 13 (#$ . 6890)])
(defalias 'thread-list-backtrace--insert-header #[0 "\301!\302!\203 \303\304!c\210\211c\210\303\305!c\207\303\306!c\210\211c\210\303\307!c\207" [thread-list-backtrace--thread thread-list--name thread-live-p substitute-command-keys "Backtrace for thread `" "':\n" "Thread `" "' is no longer running\n"] 3])#@15 

(fn THREAD)
(defalias 'thread-list--name #[257 "\301!\206 \211=\203 \302\207\303!\207" [main-thread thread-name "Main" prin1-to-string] 3 (#$ . 7549)])
(provide 'thread)
