线程可以被创建并等待其结束。线程无法直接退出,但当前线程可隐式退出, 其他线程则可被发送信号。
创建一个新的执行线程,该线程会调用 function。 当 function 返回时,线程退出。
新线程创建时不带有任何生效的局部变量绑定。 新线程的当前缓冲区继承自当前线程。
可通过 name 为线程指定名称。该名称仅用于调试与信息展示, 对 Emacs 本身无特殊含义。若提供 name,其必须为字符串。
该函数返回新建的线程对象。
若 object 代表一个 Emacs 线程,该函数返回 t,
否则返回 nil。
阻塞当前线程,直到 thread 退出或当前线程收到信号。 函数返回 thread 对应函数的执行结果。 若 thread 已退出,该函数会立即返回。
与 signal(see 如何发出错误信号)类似,
但信号会被投递到 thread 线程中。
若 thread 为当前线程,则直接立即调用 signal。
否则,thread 一旦成为当前执行线程就会收到该信号。
若 thread 正因调用 mutex-lock、condition-wait
或 thread-join 而阻塞,thread-signal 会将其解除阻塞。
若 thread 为主线程,信号不会在其中传播, 而是以消息形式在主线程中显示。
将执行权让渡给下一个可运行的线程。
返回 thread 的名称,即创建时传给 make-thread 的名称。
若 thread 处于活动状态则返回 t,否则返回 nil。
只要线程对应的函数仍在执行,该线程即为活动状态。
返回 thread 正在等待的对象。该函数主要用于调试, 因此使用双连字符名称以示说明。
若 thread 阻塞于 thread-join,则返回其等待的目标线程。
若 thread 阻塞于 mutex-lock,则返回对应的互斥锁。
若 thread 阻塞于 condition-wait,则返回对应的条件变量。
其他情况返回 nil。
返回当前线程对象。
返回所有活动线程对象组成的列表。每次调用均返回新列表。
该变量保存 Emacs 运行所在的主线程;若 Emacs 编译时未启用线程支持,
则为 nil。
当线程运行的代码触发未处理的错误时,该线程会退出。 其他线程可通过以下函数获取导致线程退出的错误信息。
返回最近一次因错误而退出的线程所记录的错误结构。
每个异常退出的线程都会覆盖上一次保存的错误信息,因此仅能获取最后一次的内容。
若 cleanup 非 nil,则将保存的错误结构重置为 nil。