* doc/lispref/threads.texi (Basic Thread Functions): Use thread-live-p.
* etc/NEWS: 'thread-alive-p' has been renamed to 'thread-live-p'.
* src/thread.c (thread_live_p): Rename from thread_alive_p. Adapt
all callees.
(Fthread_live_p): Rename from Fthread_alive_p.
(syms_of_threads): Make thread-alive-p an alias of thread-live-p.
* test/src/thread-tests.el (all): Replace `thread-alive-p' by
`thread-live-p'.
(threads-live): Rename from `threads-alive'.
Return the name of @var{thread}, as specified to @code{make-thread}.
@end defun
-@defun thread-alive-p thread
+@defun thread-live-p thread
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.
@end defun
Existing files "~/.emacs.d/shadows" and "~/.emacs.d/shadow_todo" must
be removed prior using the changed 'shadow-*' commands.
++++
+** 'thread-alive-p' has been renamed to 'thread-live-p'.
+The old name is an alias of the new name. Future Emacs version will
+obsolete it.
+
\f
* Lisp Changes in Emacs 26.2
/* m_specpdl is set when the thread is created and cleared when the
thread dies. */
-#define thread_alive_p(STATE) ((STATE)->m_specpdl != NULL)
+#define thread_live_p(STATE) ((STATE)->m_specpdl != NULL)
\f
return Qnil;
}
-DEFUN ("thread-alive-p", Fthread_alive_p, Sthread_alive_p, 1, 1, 0,
+DEFUN ("thread-live-p", Fthread_live_p, Sthread_live_p, 1, 1, 0,
doc: /* Return t if THREAD is alive, or nil if it has exited. */)
(Lisp_Object thread)
{
CHECK_THREAD (thread);
tstate = XTHREAD (thread);
- return thread_alive_p (tstate) ? Qt : Qnil;
+ return thread_live_p (tstate) ? Qt : Qnil;
}
DEFUN ("thread--blocker", Fthread_blocker, Sthread_blocker, 1, 1, 0,
XSETTHREAD (thread, tstate);
self->event_object = thread;
self->wait_condvar = &tstate->thread_condvar;
- while (thread_alive_p (tstate) && NILP (self->error_symbol))
+ while (thread_live_p (tstate) && NILP (self->error_symbol))
sys_cond_wait (self->wait_condvar, &global_lock);
self->wait_condvar = NULL;
if (tstate == current_thread)
error ("Cannot join current thread");
- if (thread_alive_p (tstate))
+ if (thread_live_p (tstate))
flush_stack_call_func (thread_join_callback, tstate);
return Qnil;
for (iter = all_threads; iter; iter = iter->next_thread)
{
- if (thread_alive_p (iter))
+ if (thread_live_p (iter))
{
Lisp_Object thread;
defsubr (&Scurrent_thread);
defsubr (&Sthread_name);
defsubr (&Sthread_signal);
- defsubr (&Sthread_alive_p);
+ defsubr (&Sthread_live_p);
defsubr (&Sthread_join);
defsubr (&Sthread_blocker);
defsubr (&Sall_threads);
staticpro (&last_thread_error);
last_thread_error = Qnil;
+ Fdefalias (intern_c_string ("thread-alive-p"),
+ intern_c_string ("thread-live-p"), Qnil);
+
Fprovide (intern_c_string ("threads"), Qnil);
}
(declare-function mutex-lock "thread.c" (mutex))
(declare-function mutex-unlock "thread.c" (mutex))
(declare-function thread--blocker "thread.c" (thread))
-(declare-function thread-alive-p "thread.c" (thread))
+(declare-function thread-live-p "thread.c" (thread))
(declare-function thread-join "thread.c" (thread))
(declare-function thread-last-error "thread.c" ())
(declare-function thread-name "thread.c" (thread))
(should
(string= "hi bob" (thread-name (make-thread #'ignore "hi bob")))))
-(ert-deftest threads-alive ()
+(ert-deftest threads-live ()
"Test for thread liveness."
(skip-unless (featurep 'threads))
(should
- (thread-alive-p (make-thread #'ignore))))
+ (thread-live-p (make-thread #'ignore))))
(ert-deftest threads-all-threads ()
"Simple test for all-threads."
(let ((thread (make-thread #'threads-test-thread1)))
(thread-join thread)
(and threads-test-global
- (not (thread-alive-p thread)))))))
+ (not (thread-live-p thread)))))))
(ert-deftest threads-join-self ()
"Cannot `thread-join' the current thread."
(let (th1 th2)
(setq th1 (make-thread #'threads-call-error "call-error"))
(should (threadp th1))
- (while (thread-alive-p th1)
+ (while (thread-live-p th1)
(thread-yield))
(should (equal (thread-last-error)
'(error "Error is called")))
(while t (thread-yield))))))
(thread-signal thread 'error nil)
(sit-for 1)
- (should-not (thread-alive-p thread))
+ (should-not (thread-live-p thread))
(should (equal (thread-last-error) '(error)))))
(defvar threads-condvar nil)
(setq new-thread (make-thread #'threads-test-condvar-wait))
;; Make sure new-thread is alive.
- (should (thread-alive-p new-thread))
+ (should (thread-live-p new-thread))
(should (= (length (all-threads)) 2))
;; Wait for new-thread to become blocked on the condvar.
(while (not (eq (thread--blocker new-thread) threads-condvar))
(sleep-for 0.1)
;; Make sure the thread is still there. This used to fail due to
;; a bug in thread.c:condition_wait_callback.
- (should (thread-alive-p new-thread))
+ (should (thread-live-p new-thread))
(should (= (length (all-threads)) 2))
(should (eq (thread--blocker new-thread) threads-condvar))