Subject: bug#17139: Race condition in complete-in-region: should we be using pre-command-hook, not post-command-hook?

From: Stefan Monnier <[email-masked]>
Date: Sun, 30 Mar 2014 17:39:19 -0400

>> run post-command-hook; completion-in-region--postch is on the list of
>> hooks to run.  This function runs completion-in-region-mode--predicate,
>> which makes a hidden call to the subprocess;

Using the subprocess from completion-in-region--postch sounds
like a problem/bug, indeed.  Why do we(I?) do that?

>> Why can't we do the completion-in-region--postch stuff in pre-command-hook?

Because pre-command-hook would come even later (it would only disable
completion-in-region-mode at the beginning of the next command after RET).

> +  ;; If we're currently completing, stop.  We're definitely done
> +  ;; completing, and by sending the input, we might cause side effects
> +  ;; that will confuse the code running in the completion
> +  ;; post-command-hook.
> +  (when completion-in-region-mode
> +    (completion-in-region-mode -1))

I see you installed it, thanks, I think it's OK.  But I'd also like to
know why we contact the subprocess from completion-in-region--postch,
because that's risky.

        Stefan