From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Artur Malabarba Newsgroups: gmane.emacs.bugs Subject: bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook Date: Sun, 25 Oct 2015 14:43:06 +0000 Message-ID: References: <87bnboemqb.fsf@gnu.org> <838u6sy9s1.fsf@gnu.org> <877fmcejgn.fsf@gnu.org> <83ziz8wrun.fsf@gnu.org> <8737x0egvm.fsf@gnu.org> <83vb9wwnc6.fsf@gnu.org> Reply-To: bruce.connor.am@gmail.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: ger.gmane.org 1445784269 6412 80.91.229.3 (25 Oct 2015 14:44:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 25 Oct 2015 14:44:29 +0000 (UTC) Cc: Tassilo Horn , Stefan Monnier , 21747@debbugs.gnu.org, Kim Storm To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Oct 25 15:44:17 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZqMWt-0005uJ-F9 for geb-bug-gnu-emacs@m.gmane.org; Sun, 25 Oct 2015 15:44:15 +0100 Original-Received: from localhost ([::1]:48308 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZqMWs-0001qB-RI for geb-bug-gnu-emacs@m.gmane.org; Sun, 25 Oct 2015 10:44:14 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54076) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZqMWj-0001cr-Cw for bug-gnu-emacs@gnu.org; Sun, 25 Oct 2015 10:44:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZqMWg-0005xJ-0H for bug-gnu-emacs@gnu.org; Sun, 25 Oct 2015 10:44:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:47381) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZqMWf-0005xF-Ty for bug-gnu-emacs@gnu.org; Sun, 25 Oct 2015 10:44:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZqMWf-0003ZH-Pq for bug-gnu-emacs@gnu.org; Sun, 25 Oct 2015 10:44:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Artur Malabarba Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 25 Oct 2015 14:44:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 21747 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 21747-submit@debbugs.gnu.org id=B21747.144578419013642 (code B ref 21747); Sun, 25 Oct 2015 14:44:01 +0000 Original-Received: (at 21747) by debbugs.gnu.org; 25 Oct 2015 14:43:10 +0000 Original-Received: from localhost ([127.0.0.1]:38088 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZqMVp-0003Xy-QB for submit@debbugs.gnu.org; Sun, 25 Oct 2015 10:43:10 -0400 Original-Received: from mail-lf0-f53.google.com ([209.85.215.53]:33318) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZqMVn-0003Xo-DG for 21747@debbugs.gnu.org; Sun, 25 Oct 2015 10:43:08 -0400 Original-Received: by lffv3 with SMTP id v3so123842468lff.0 for <21747@debbugs.gnu.org>; Sun, 25 Oct 2015 07:43:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=lV76f+VUpJCwQpzj8PgQ/JQaS/qzj2cYRtgttQJE7Lk=; b=gJ6bx2u+85DeDwGDie41mNqn/iCxnqm0ehspPD3qiTV0tWTyN3z7UdarAGITIDHvyq pHap8aP62CsMOYblq+9m/BRSn81P0TmfnHlLq8i9fEYqofLY5E9hxtGaAAyp3OPE90AM aZHXkO9jShDLBXFoiHmPUT3Q9i6EcXj9UFJVoTxoM1Ec0DPTqjDl2fOx/rfBKon4RhNu Z9Rcl37e02n9uQALJGwZypAgPAPhXJAxZdSIG+gUPQDv+LSJbjoDFAJfWsRd2H2/13Lg o4kJhV4nI/rL/GJ/VWhKQL8rUr7ov4Ka8gzarNy495Z8NF10B02+QYQ/Rr0fzOy/G+k6 Ja+A== X-Received: by 10.112.184.196 with SMTP id ew4mr14980080lbc.17.1445784186266; Sun, 25 Oct 2015 07:43:06 -0700 (PDT) Original-Received: by 10.112.91.106 with HTTP; Sun, 25 Oct 2015 07:43:06 -0700 (PDT) In-Reply-To: <83vb9wwnc6.fsf@gnu.org> X-Google-Sender-Auth: pxBUSO5koU3qxXaVKjCb1pf0S2A X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:108017 Archived-At: 2015-10-24 11:52 GMT+01:00 Eli Zaretskii : >> Date: Sat, 24 Oct 2015 11:30:42 +0100 >> From: Artur Malabarba >> Cc: Stefan Monnier , Kim Storm , 21747@debbugs.gnu.org, >> Eli Zaretskii >> >> So maybe the docstring for post-command-hook should point out this detail and >> recommend that functions added to this hook call sit-for if they're going to do >> potentially expensive processing. > > Just being potentially expensive is not enough to trigger the problem. > You need to actually hog Emacs (or close to that) to prevent redisplay > from eventually happening. > > I agree that expensive processing in post-command-hook is not a good > idea (and said so several times in the past), but people are still > doing that, so I guess just advertising the problem is not enough. (I > don't object to adding this to documentation, of course.) I've extended the docstring. I used redisplay instead of (sit-for 0), because inside a call to while-no-input it has the exact same effect and is more expressive. Suggestions welcome. -otherwise the error might happen repeatedly and make Emacs nonfunctional. */); +otherwise the error might happen repeatedly and make Emacs nonfunctional. + +It is usually a bad idea to use this hook for expensive processing. +If unavoidable, `while-no-input' can be used avoid making Emacs +unresponsive while the user types. Furthermore, this hook is run +before redisplay, so the effect of the executed command won't be +displayed on the buffer until after the hook has finished (giving the +impression that Emacs is hanging). You can call `redisplay' inside +`while-no-input' to avoid this. +