[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Progress on bug#3521? mode-line updates break process-send-region
From: |
Chong Yidong |
Subject: |
Re: Progress on bug#3521? mode-line updates break process-send-region |
Date: |
Sun, 28 Jun 2009 12:07:48 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) |
Tassilo Horn <address@hidden> writes:
>> Please do a search of prior revisions and find the change where this
>> problem first arose. Thanks.
>
> I'll see what I can do. I've tried with emacs 22.3, and there I cannot
> reproduce it. So it seems to be introduced some times back in the 23
> branch.
Note, by the way, that your test case does something that you maybe did
not intend:
> (progn
> (setq proctest
> (start-process "cat" (get-buffer-create "cat") "/bin/cat"))
> (with-temp-buffer
> (dotimes (dummy 999999)
> (insert
> (concat (number-to-string (random))
> (number-to-string (random))
> (number-to-string (random))
> (number-to-string (random))
> "\n")))
> (process-send-region proctest (point-min) (point-max)))
> (delete-process proctest))
It keeps growing the temporary buffer, and eventually you're sending
extremely large strings to the inferior process.
> Debugger entered--Lisp error: (file-error "writing to process" "bad address"
> #<process cat<2>>)
> process-send-region(#<process cat<2>> 1 75145548)
On my 32-bit machine, the error occurs earlier. But If I insert an
`erase-buffer' call into your loop, so that the size of the temporary
buffer is bounded, Emacs completes the 999999-iteration loop without any
error.
If there's any connection with mode-line updates, I have not been able
to reproduce it.