That is unfortunate. I was assuming that at least thread primitives can be made thread-safe. 

On Sat, Oct 31, 2020 at 11:14 AM Eli Zaretskii <eliz@gnu.org> wrote:
> From: yyoncho <yyoncho@gmail.com>
> Date: Sat, 31 Oct 2020 10:02:41 +0200
> Cc: Zhu Zihao <all_but_last@163.com>, ak@akirakyle.com,
>       emacs-devel <emacs-devel@gnu.org>
>
> Allowing condition-notify call from non-elisp threads would solve the problem as well.

I don't see how that could be possible without redesigning the entire
Lisp threads machinery.

In general, no part of the Lisp interpreter -- and that includes the
Lisp thread related functions -- can ever safely run from an async
non-Lisp thread.