emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [patch] enhanced mac drag-n-drop


From: Stefan Monnier
Subject: Re: [patch] enhanced mac drag-n-drop
Date: Sun, 10 Apr 2005 23:35:55 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (darwin)

>     Jan D. explained the problem, and I will just note that compiling
>     with -DSYNC_INPUT should lift that restriction (because it causes
>     XTread_socket to not be run from the signal handler any more).

> Do you recall what the disadvantages of -DSYNC_INPUT were?
> I think one disadvantage may have been that the Emacs window would
> not refresh while something was busy.  But I am not sure if that
> disadvantage is real.  Do you know?

Indeed, it makes signal handling synchronous, i.e. more like
cooperative multithreading: if you forget to use QUIT at some spot, it might
lead to an Emacs process completely unresponsive to C-g.
Note that we already have such occurrences current without
using -DSYNC_INPUT, so it wouldn't be a new class of bugs.

But the screen does get refreshed even while Emacs is busy since signals
processing can be done at any place where we do QUIT.

Other disadantages: it makes the QUIT macro bigger and maybe slower.
I haven't looked at the actual impact and neither have I tried to reduce
this impact.

OTOH, it makes several BLOCK_INPUT unnecessary, including all the
malloc_hook hacks.

For what it's worth I've been using Emacs with -DSYNC_INPUT since before
I installed the patch and haven't noticed any negative impact (except for
a few places where a QUIT was missing, but I haven't bumped into any such
thing for a while now).


        Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]