846 lines
28 KiB
Plaintext
846 lines
28 KiB
Plaintext
# SOME DESCRIPTIVE TITLE
|
|
# Copyright (C) YEAR Free Software Foundation, Inc.
|
|
# This file is distributed under the same license as the PACKAGE package.
|
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
#
|
|
#, fuzzy
|
|
msgid ""
|
|
msgstr ""
|
|
"Project-Id-Version: PACKAGE VERSION\n"
|
|
"POT-Creation-Date: 2021-11-07 12:11+0900\n"
|
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
"Language: \n"
|
|
"MIME-Version: 1.0\n"
|
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
|
|
#. type: chapter
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:5
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:6
|
|
#, no-wrap
|
|
msgid "Threads"
|
|
msgstr ""
|
|
|
|
#. type: cindex
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:7
|
|
#, no-wrap
|
|
msgid "threads"
|
|
msgstr ""
|
|
|
|
#. type: cindex
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:8
|
|
#, no-wrap
|
|
msgid "concurrency"
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:17
|
|
msgid ""
|
|
"Emacs Lisp provides a limited form of concurrency, called @dfn{threads}. "
|
|
"All the threads in a given instance of Emacs share the same memory. "
|
|
"Concurrency in Emacs Lisp is ``mostly cooperative'', meaning that Emacs will "
|
|
"only switch execution between threads at well-defined times. However, the "
|
|
"Emacs thread support has been designed in a way to later allow more "
|
|
"fine-grained concurrency, and correct programs should not rely on "
|
|
"cooperative threading."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:23
|
|
msgid ""
|
|
"Currently, thread switching will occur upon explicit request via "
|
|
"@code{thread-yield}, when waiting for keyboard input or for process output "
|
|
"from asynchronous processes (e.g., during @code{accept-process-output}), or "
|
|
"during blocking operations relating to threads, such as mutex locking or "
|
|
"@code{thread-join}."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:27
|
|
msgid ""
|
|
"Emacs Lisp provides primitives to create and control threads, and also to "
|
|
"create and control mutexes and condition variables, useful for thread "
|
|
"synchronization."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:32
|
|
msgid ""
|
|
"While global variables are shared among all Emacs Lisp threads, local "
|
|
"variables are not---a dynamic @code{let} binding is local. Each thread also "
|
|
"has its own current buffer (@pxref{Current Buffer}) and its own match data "
|
|
"(@pxref{Match Data})."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:39
|
|
msgid ""
|
|
"Note that @code{let} bindings are treated specially by the Emacs Lisp "
|
|
"implementation. There is no way to duplicate this unwinding and rewinding "
|
|
"behavior other than by using @code{let}. For example, a manual "
|
|
"implementation of @code{let} written using @code{unwind-protect} cannot "
|
|
"arrange for variable values to be thread-specific."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:43
|
|
msgid ""
|
|
"In the case of lexical bindings (@pxref{Variable Scoping}), a closure is an "
|
|
"object like any other in Emacs Lisp, and bindings in a closure are shared by "
|
|
"any threads invoking the closure."
|
|
msgstr ""
|
|
|
|
#. type: section
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:49
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:51
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:52
|
|
#, no-wrap
|
|
msgid "Basic Thread Functions"
|
|
msgstr ""
|
|
|
|
#. type: menuentry
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:49
|
|
msgid "Basic thread functions."
|
|
msgstr ""
|
|
|
|
#. type: section
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:49
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:151
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:152
|
|
#, no-wrap
|
|
msgid "Mutexes"
|
|
msgstr ""
|
|
|
|
#. type: menuentry
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:49
|
|
msgid "Mutexes allow exclusive access to data."
|
|
msgstr ""
|
|
|
|
#. type: section
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:49
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:198
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:199
|
|
#, no-wrap
|
|
msgid "Condition Variables"
|
|
msgstr ""
|
|
|
|
#. type: menuentry
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:49
|
|
msgid "Inter-thread events."
|
|
msgstr ""
|
|
|
|
#. type: section
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:49
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:276
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:277
|
|
#, no-wrap
|
|
msgid "The Thread List"
|
|
msgstr ""
|
|
|
|
#. type: menuentry
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:49
|
|
msgid "Show the active threads."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:57
|
|
msgid ""
|
|
"Threads can be created and waited for. A thread cannot be exited directly, "
|
|
"but the current thread can be exited implicitly, and other threads can be "
|
|
"signaled."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:58
|
|
#, no-wrap
|
|
msgid "make-thread function &optional name"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:61
|
|
msgid ""
|
|
"Create a new thread of execution which invokes @var{function}. When "
|
|
"@var{function} returns, the thread exits."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:64
|
|
msgid ""
|
|
"The new thread is created with no local variable bindings in effect. The "
|
|
"new thread's current buffer is inherited from the current thread."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:68
|
|
msgid ""
|
|
"@var{name} can be supplied to give a name to the thread. The name is used "
|
|
"for debugging and informational purposes only; it has no meaning to Emacs. "
|
|
"If @var{name} is provided, it must be a string."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:70
|
|
msgid "This function returns the new thread."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:72
|
|
#, no-wrap
|
|
msgid "threadp object"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:75
|
|
msgid ""
|
|
"This function returns @code{t} if @var{object} represents an Emacs thread, "
|
|
"@code{nil} otherwise."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:77
|
|
#, no-wrap
|
|
msgid "thread-join thread"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:81
|
|
msgid ""
|
|
"Block until @var{thread} exits, or until the current thread is signaled. It "
|
|
"returns the result of the @var{thread} function. If @var{thread} has "
|
|
"already exited, this returns immediately."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:83
|
|
#, no-wrap
|
|
msgid "thread-signal thread error-symbol data"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:91
|
|
msgid ""
|
|
"Like @code{signal} (@pxref{Signaling Errors}), but the signal is delivered "
|
|
"in the thread @var{thread}. If @var{thread} is the current thread, then "
|
|
"this just calls @code{signal} immediately. Otherwise, @var{thread} will "
|
|
"receive the signal as soon as it becomes current. If @var{thread} was "
|
|
"blocked by a call to @code{mutex-lock}, @code{condition-wait}, or "
|
|
"@code{thread-join}; @code{thread-signal} will unblock it."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:94
|
|
msgid ""
|
|
"If @var{thread} is the main thread, the signal is not propagated there. "
|
|
"Instead, it is shown as message in the main thread."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:96
|
|
#, no-wrap
|
|
msgid "thread-yield"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:98
|
|
msgid "Yield execution to the next runnable thread."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:100
|
|
#, no-wrap
|
|
msgid "thread-name thread"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:102
|
|
msgid "Return the name of @var{thread}, as specified to @code{make-thread}."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:104
|
|
#, no-wrap
|
|
msgid "thread-live-p thread"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:107
|
|
msgid ""
|
|
"Return @code{t} if @var{thread} is alive, or @code{nil} if it is not. A "
|
|
"thread is alive as long as its function is still executing."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:109
|
|
#, no-wrap
|
|
msgid "thread--blocker thread"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:113
|
|
msgid ""
|
|
"Return the object that @var{thread} is waiting on. This function is "
|
|
"primarily intended for debugging, and is given a ``double hyphen'' name to "
|
|
"indicate that."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:116
|
|
msgid ""
|
|
"If @var{thread} is blocked in @code{thread-join}, this returns the thread "
|
|
"for which it is waiting."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:118
|
|
msgid "If @var{thread} is blocked in @code{mutex-lock}, this returns the mutex."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:121
|
|
msgid ""
|
|
"If @var{thread} is blocked in @code{condition-wait}, this returns the "
|
|
"condition variable."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:123
|
|
msgid "Otherwise, this returns @code{nil}."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:125
|
|
#, no-wrap
|
|
msgid "current-thread"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:127
|
|
msgid "Return the current thread."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:129
|
|
#, no-wrap
|
|
msgid "all-threads"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:132
|
|
msgid ""
|
|
"Return a list of all the live thread objects. A new list is returned by "
|
|
"each invocation."
|
|
msgstr ""
|
|
|
|
#. type: defvar
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:134
|
|
#, no-wrap
|
|
msgid "main-thread"
|
|
msgstr ""
|
|
|
|
#. type: defvar
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:137
|
|
msgid ""
|
|
"This variable keeps the main thread Emacs is running, or @code{nil} if Emacs "
|
|
"is compiled without thread support."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:142
|
|
msgid ""
|
|
"When code run by a thread signals an error that is unhandled, the thread "
|
|
"exits. Other threads can access the error form which caused the thread to "
|
|
"exit using the following function."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:143
|
|
#, no-wrap
|
|
msgid "thread-last-error &optional cleanup"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:149
|
|
msgid ""
|
|
"This function returns the last error form recorded when a thread exited due "
|
|
"to an error. Each thread that exits abnormally overwrites the form stored "
|
|
"by the previous thread's error with a new value, so only the last one can be "
|
|
"accessed. If @var{cleanup} is non-@code{nil}, the stored form is reset to "
|
|
"@code{nil}."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:158
|
|
msgid ""
|
|
"A @dfn{mutex} is an exclusive lock. At any moment, zero or one threads may "
|
|
"own a mutex. If a thread attempts to acquire a mutex, and the mutex is "
|
|
"already owned by some other thread, then the acquiring thread will block "
|
|
"until the mutex becomes available."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:165
|
|
msgid ""
|
|
"Emacs Lisp mutexes are of a type called @dfn{recursive}, which means that a "
|
|
"thread can re-acquire a mutex it owns any number of times. A mutex keeps a "
|
|
"count of how many times it has been acquired, and each acquisition of a "
|
|
"mutex must be paired with a release. The last release by a thread of a "
|
|
"mutex reverts it to the unowned state, potentially allowing another thread "
|
|
"to acquire the mutex."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:166
|
|
#, no-wrap
|
|
msgid "mutexp object"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:169
|
|
msgid ""
|
|
"This function returns @code{t} if @var{object} represents an Emacs mutex, "
|
|
"@code{nil} otherwise."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:171
|
|
#, no-wrap
|
|
msgid "make-mutex &optional name"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:175
|
|
msgid ""
|
|
"Create a new mutex and return it. If @var{name} is specified, it is a name "
|
|
"given to the mutex. It must be a string. The name is for debugging "
|
|
"purposes only; it has no meaning to Emacs."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:177
|
|
#, no-wrap
|
|
msgid "mutex-name mutex"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:179
|
|
msgid "Return the name of @var{mutex}, as specified to @code{make-mutex}."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:181
|
|
#, no-wrap
|
|
msgid "mutex-lock mutex"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:185
|
|
msgid ""
|
|
"This will block until this thread acquires @var{mutex}, or until this thread "
|
|
"is signaled using @code{thread-signal}. If @var{mutex} is already owned by "
|
|
"this thread, this simply returns."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:187
|
|
#, no-wrap
|
|
msgid "mutex-unlock mutex"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:190
|
|
msgid ""
|
|
"Release @var{mutex}. If @var{mutex} is not owned by this thread, this will "
|
|
"signal an error."
|
|
msgstr ""
|
|
|
|
#. type: defmac
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:192
|
|
#, no-wrap
|
|
msgid "with-mutex mutex body@dots{}"
|
|
msgstr ""
|
|
|
|
#. type: defmac
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:196
|
|
msgid ""
|
|
"This macro is the simplest and safest way to evaluate forms while holding a "
|
|
"mutex. It acquires @var{mutex}, invokes @var{body}, and then releases "
|
|
"@var{mutex}. It returns the result of @var{body}."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:204
|
|
msgid ""
|
|
"A @dfn{condition variable} is a way for a thread to block until some event "
|
|
"occurs. A thread can wait on a condition variable, to be woken up when some "
|
|
"other thread notifies the condition."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:209
|
|
msgid ""
|
|
"A condition variable is associated with a mutex and, conceptually, with some "
|
|
"condition. For proper operation, the mutex must be acquired, and then a "
|
|
"waiting thread must loop, testing the condition and waiting on the condition "
|
|
"variable. For example:"
|
|
msgstr ""
|
|
|
|
#. type: example
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:214
|
|
#, no-wrap
|
|
msgid ""
|
|
"(with-mutex mutex\n"
|
|
" (while (not global-variable)\n"
|
|
" (condition-wait cond-var)))\n"
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:218
|
|
msgid ""
|
|
"The mutex ensures atomicity, and the loop is for robustness---there may be "
|
|
"spurious notifications."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:222
|
|
msgid ""
|
|
"Similarly, the mutex must be held before notifying the condition. The "
|
|
"typical, and best, approach is to acquire the mutex, make the changes "
|
|
"associated with this condition, and then notify it:"
|
|
msgstr ""
|
|
|
|
#. type: example
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:227
|
|
#, no-wrap
|
|
msgid ""
|
|
"(with-mutex mutex\n"
|
|
" (setq global-variable (some-computation))\n"
|
|
" (condition-notify cond-var))\n"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:229
|
|
#, no-wrap
|
|
msgid "make-condition-variable mutex &optional name"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:234
|
|
msgid ""
|
|
"Make a new condition variable associated with @var{mutex}. If @var{name} is "
|
|
"specified, it is a name given to the condition variable. It must be a "
|
|
"string. The name is for debugging purposes only; it has no meaning to "
|
|
"Emacs."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:236
|
|
#, no-wrap
|
|
msgid "condition-variable-p object"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:239
|
|
msgid ""
|
|
"This function returns @code{t} if @var{object} represents a condition "
|
|
"variable, @code{nil} otherwise."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:241
|
|
#, no-wrap
|
|
msgid "condition-wait cond"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:245
|
|
msgid ""
|
|
"Wait for another thread to notify @var{cond}, a condition variable. This "
|
|
"function will block until the condition is notified, or until a signal is "
|
|
"delivered to this thread using @code{thread-signal}."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:248
|
|
msgid ""
|
|
"It is an error to call @code{condition-wait} without holding the condition's "
|
|
"associated mutex."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:252
|
|
msgid ""
|
|
"@code{condition-wait} releases the associated mutex while waiting. This "
|
|
"allows other threads to acquire the mutex in order to notify the condition."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:254
|
|
#, no-wrap
|
|
msgid "condition-notify cond &optional all"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:259
|
|
msgid ""
|
|
"Notify @var{cond}. The mutex with @var{cond} must be held before calling "
|
|
"this. Ordinarily a single waiting thread is woken by "
|
|
"@code{condition-notify}; but if @var{all} is not @code{nil}, then all "
|
|
"threads waiting on @var{cond} are notified."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:264
|
|
msgid ""
|
|
"@code{condition-notify} releases the associated mutex while waiting. This "
|
|
"allows other threads to acquire the mutex in order to wait on the condition."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:266
|
|
#, no-wrap
|
|
msgid "condition-name cond"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:269
|
|
msgid "Return the name of @var{cond}, as passed to @code{make-condition-variable}."
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:271
|
|
#, no-wrap
|
|
msgid "condition-mutex cond"
|
|
msgstr ""
|
|
|
|
#. type: defun
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:274
|
|
msgid ""
|
|
"Return the mutex associated with @var{cond}. Note that the associated mutex "
|
|
"cannot be changed."
|
|
msgstr ""
|
|
|
|
#. type: cindex
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:279
|
|
#, no-wrap
|
|
msgid "thread list"
|
|
msgstr ""
|
|
|
|
#. type: cindex
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:280
|
|
#, no-wrap
|
|
msgid "list of threads"
|
|
msgstr ""
|
|
|
|
#. type: findex
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:281
|
|
#, no-wrap
|
|
msgid "list-threads"
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:289
|
|
msgid ""
|
|
"The @code{list-threads} command lists all the currently alive threads. In "
|
|
"the resulting buffer, each thread is identified either by the name passed to "
|
|
"@code{make-thread} (@pxref{Basic Thread Functions}), or by its unique "
|
|
"internal identifier if it was not created with a name. The status of each "
|
|
"thread at the time of the creation or last update of the buffer is shown, in "
|
|
"addition to the object the thread was blocked on at the time, if it was "
|
|
"blocked."
|
|
msgstr ""
|
|
|
|
#. type: defvar
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:290
|
|
#, no-wrap
|
|
msgid "thread-list-refresh-seconds"
|
|
msgstr ""
|
|
|
|
#. type: defvar
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:294
|
|
msgid ""
|
|
"The @file{*Threads*} buffer will automatically update twice per second. You "
|
|
"can make the refresh rate faster or slower by customizing this variable."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:297
|
|
msgid "Here are the commands available in the thread list buffer:"
|
|
msgstr ""
|
|
|
|
#. type: cindex
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:300
|
|
#, no-wrap
|
|
msgid "backtrace of thread"
|
|
msgstr ""
|
|
|
|
#. type: cindex
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:301
|
|
#, no-wrap
|
|
msgid "thread backtrace"
|
|
msgstr ""
|
|
|
|
#. type: item
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:302
|
|
#, no-wrap
|
|
msgid "b"
|
|
msgstr ""
|
|
|
|
#. type: table
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:308
|
|
msgid ""
|
|
"Show a backtrace of the thread at point. This will show where in its code "
|
|
"the thread had yielded or was blocked at the moment you pressed @kbd{b}. Be "
|
|
"aware that the backtrace is a snapshot; the thread could have meanwhile "
|
|
"resumed execution, and be in a different state, or could have exited."
|
|
msgstr ""
|
|
|
|
#. type: table
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:313
|
|
msgid ""
|
|
"You may use @kbd{g} in the thread's backtrace buffer to get an updated "
|
|
"backtrace, as backtrace buffers do not automatically update. "
|
|
"@xref{Backtraces}, for a description of backtraces and the other commands "
|
|
"which work on them."
|
|
msgstr ""
|
|
|
|
#. type: item
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:314
|
|
#, no-wrap
|
|
msgid "s"
|
|
msgstr ""
|
|
|
|
#. type: table
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:321
|
|
msgid ""
|
|
"Signal the thread at point. After @kbd{s}, type @kbd{q} to send a quit "
|
|
"signal or @kbd{e} to send an error signal. Threads may implement handling "
|
|
"of signals, but the default behavior is to exit on any signal. Therefore "
|
|
"you should only use this command if you understand how to restart the target "
|
|
"thread, because your Emacs session may behave incorrectly if necessary "
|
|
"threads are killed."
|
|
msgstr ""
|
|
|
|
#. type: item
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:322
|
|
#, no-wrap
|
|
msgid "g"
|
|
msgstr ""
|
|
|
|
#. type: table
|
|
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
|
|
#: Sources/doc/lispref/threads.texi:324
|
|
msgid "Update the list of threads and their statuses."
|
|
msgstr ""
|