Thank you for the quick response and the info. Sounds like this can't be fixed easily; I'll see if polling-period works for me.

On Sun, Jan 15, 2023 at 1:41 AM Po Lu <luangruo@yahoo.com> wrote:
Eli Zaretskii <eliz@gnu.org> writes:

> Does NS use a separate thread to handle input events?

Unfortunately not.

> If so, could that separate thread set quit-flag when we are under
> throw-on-input, if it detects a suitable input event?  The w32 port
> does that, see signal_user_input in w32fns.c.  This should allow the
> Lisp thread detect that input is pending in a more timely fashion.

I understand that approach, it's taken in the Android port as well.
Unfortunately, it cannot work because the NS port currently runs in the
same thread that Lisp runs in.

Thanks.