* bug#5372: Calling url-retrieve-synchronously in a timer
[not found] <e01d8a51001122054x7d2489eu6cf17ca3579368d4@mail.gmail.com>
@ 2010-01-13 9:21 ` Lennart Borgman
2010-01-13 14:43 ` Stefan Monnier
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Lennart Borgman @ 2010-01-13 9:21 UTC (permalink / raw)
To: emacs-pretest-bug
It looks like url-retrieve-synchronously is not finished when run in a
timer. Is that expected behaviour?
It looks like it hangs in accept-process-output.
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2010-01-13 9:21 ` bug#5372: Calling url-retrieve-synchronously in a timer Lennart Borgman
@ 2010-01-13 14:43 ` Stefan Monnier
2010-01-13 15:17 ` Lennart Borgman
2010-01-13 16:02 ` Chong Yidong
2011-09-18 10:26 ` Lars Magne Ingebrigtsen
2011-09-19 18:39 ` Stefan Monnier
2 siblings, 2 replies; 14+ messages in thread
From: Stefan Monnier @ 2010-01-13 14:43 UTC (permalink / raw)
To: Lennart Borgman; +Cc: 5372
> It looks like url-retrieve-synchronously is not finished when run in a
> timer. Is that expected behaviour?
> It looks like it hangs in accept-process-output.
It's not expected (for me anyway), but I'm not completely
surprised either. Furthermore, it doesn't look like a good thing to
do anyway: timer code should not run for an indefinite amount of time,
so you should probably use url-retrieve instead.
Stefan
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2010-01-13 14:43 ` Stefan Monnier
@ 2010-01-13 15:17 ` Lennart Borgman
2010-01-13 18:49 ` Stefan Monnier
2010-01-13 16:02 ` Chong Yidong
1 sibling, 1 reply; 14+ messages in thread
From: Lennart Borgman @ 2010-01-13 15:17 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 5372
On Wed, Jan 13, 2010 at 3:43 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
>> It looks like url-retrieve-synchronously is not finished when run in a
>> timer. Is that expected behaviour?
>> It looks like it hangs in accept-process-output.
>
> It's not expected (for me anyway), but I'm not completely
> surprised either.
So do you consider it a bug? Or should it rather be documented for the
moment? Does it work the same way on other platforms? (I tested on
w32, forgot to mention that.)
> Furthermore, it doesn't look like a good thing to
> do anyway: timer code should not run for an indefinite amount of time,
Maybe you misunderstod me. If I do the call to
url-retrieve-synchronously from the command loop it finishes very
quickly (in this case), but if I do the same thing in a timer it
hangs.
> so you should probably use url-retrieve instead.
Thanks. Yes, I already did and that solved my problem, but the bug
report is not about that.
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2010-01-13 14:43 ` Stefan Monnier
2010-01-13 15:17 ` Lennart Borgman
@ 2010-01-13 16:02 ` Chong Yidong
2010-01-13 16:21 ` Lennart Borgman
2010-01-13 22:54 ` Jason Rumney
1 sibling, 2 replies; 14+ messages in thread
From: Chong Yidong @ 2010-01-13 16:02 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 5372
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> It looks like url-retrieve-synchronously is not finished when run in a
>> timer. Is that expected behaviour?
>> It looks like it hangs in accept-process-output.
>
> It's not expected (for me anyway), but I'm not completely
> surprised either. Furthermore, it doesn't look like a good thing to
> do anyway: timer code should not run for an indefinite amount of time,
> so you should probably use url-retrieve instead.
Could this be a manifestation of Bug#5359, "process-send-region hangs
ntEmacs if region >64K"?
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5359
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2010-01-13 16:02 ` Chong Yidong
@ 2010-01-13 16:21 ` Lennart Borgman
2010-01-13 22:54 ` Jason Rumney
1 sibling, 0 replies; 14+ messages in thread
From: Lennart Borgman @ 2010-01-13 16:21 UTC (permalink / raw)
To: Chong Yidong; +Cc: 5372
On Wed, Jan 13, 2010 at 5:02 PM, Chong Yidong <cyd@stupidchicken.com> wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
>>> It looks like url-retrieve-synchronously is not finished when run in a
>>> timer. Is that expected behaviour?
>>> It looks like it hangs in accept-process-output.
>>
>> It's not expected (for me anyway), but I'm not completely
>> surprised either. Furthermore, it doesn't look like a good thing to
>> do anyway: timer code should not run for an indefinite amount of time,
>> so you should probably use url-retrieve instead.
>
> Could this be a manifestation of Bug#5359, "process-send-region hangs
> ntEmacs if region >64K"?
>
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5359
The buffer retrieved in my case has point-max 53784.
I tested with a smaller web page and that actually worked. But to my
surprise the original web page also works today.
I do not know what is different. However I have seen several times
that Emacs on w32 can get into bad states. This happens when some kind
of resource is exhausted. The one I can see easily is GDI.
Maybe some of the w32 api calls does not check the return values as they should?
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2010-01-13 15:17 ` Lennart Borgman
@ 2010-01-13 18:49 ` Stefan Monnier
2010-01-13 19:09 ` Lennart Borgman
0 siblings, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2010-01-13 18:49 UTC (permalink / raw)
To: Lennart Borgman; +Cc: 5372
>>> It looks like url-retrieve-synchronously is not finished when run in a
>>> timer. Is that expected behaviour?
>>> It looks like it hangs in accept-process-output.
>> It's not expected (for me anyway), but I'm not completely
>> surprised either.
> So do you consider it a bug?
I think so, yes.
>> Furthermore, it doesn't look like a good thing to
>> do anyway: timer code should not run for an indefinite amount of time,
> Maybe you misunderstod me. If I do the call to
> url-retrieve-synchronously from the command loop it finishes very
> quickly (in this case), but if I do the same thing in a timer
> it hangs.
I understood you alright. The fact that "it finishes quickly" when you
try it doesn't mean that it will always run in a definite amount of time.
Stefan
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2010-01-13 18:49 ` Stefan Monnier
@ 2010-01-13 19:09 ` Lennart Borgman
2010-01-13 19:57 ` Stefan Monnier
0 siblings, 1 reply; 14+ messages in thread
From: Lennart Borgman @ 2010-01-13 19:09 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 5372
On Wed, Jan 13, 2010 at 7:49 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
>
>>> Furthermore, it doesn't look like a good thing to
>>> do anyway: timer code should not run for an indefinite amount of time,
>> Maybe you misunderstod me. If I do the call to
>> url-retrieve-synchronously from the command loop it finishes very
>> quickly (in this case), but if I do the same thing in a timer
>> it hangs.
>
> I understood you alright. The fact that "it finishes quickly" when you
> try it doesn't mean that it will always run in a definite amount of time.
What is the problem with letting code in a timer run/wait for a long time?
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2010-01-13 19:09 ` Lennart Borgman
@ 2010-01-13 19:57 ` Stefan Monnier
0 siblings, 0 replies; 14+ messages in thread
From: Stefan Monnier @ 2010-01-13 19:57 UTC (permalink / raw)
To: Lennart Borgman; +Cc: 5372
>>>> Furthermore, it doesn't look like a good thing to
>>>> do anyway: timer code should not run for an indefinite amount of time,
>>> Maybe you misunderstod me. If I do the call to
>>> url-retrieve-synchronously from the command loop it finishes very
>>> quickly (in this case), but if I do the same thing in a timer
>>> it hangs.
>> I understood you alright. The fact that "it finishes quickly" when you
>> try it doesn't mean that it will always run in a definite amount of time.
> What is the problem with letting code in a timer run/wait for a long time?
Since it's run asynchronously, it can interrupt the user unexpectedly.
Also timer code is normally run with inhibit-quit non-nil, so the user
has no way to abort the timer code. So you'd need to use
with-local-quit at least, which in turn means that if the user happens
to press C-g while your timer happens to be running, it will be aborted.
Stefan
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2010-01-13 16:02 ` Chong Yidong
2010-01-13 16:21 ` Lennart Borgman
@ 2010-01-13 22:54 ` Jason Rumney
2010-01-14 4:33 ` Stefan Monnier
1 sibling, 1 reply; 14+ messages in thread
From: Jason Rumney @ 2010-01-13 22:54 UTC (permalink / raw)
To: Chong Yidong; +Cc: 5372
Chong Yidong wrote:
>>> It looks like url-retrieve-synchronously is not finished when run in a
>>> timer. Is that expected behaviour?
>>> It looks like it hangs in accept-process-output.
>>>
>
> Could this be a manifestation of Bug#5359, "process-send-region hangs
> ntEmacs if region >64K"?
>
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5359
>
url-retrieve-synchronously should not be using a subprocess, so unlikely.
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2010-01-13 22:54 ` Jason Rumney
@ 2010-01-14 4:33 ` Stefan Monnier
2010-01-14 5:21 ` Jason Rumney
0 siblings, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2010-01-14 4:33 UTC (permalink / raw)
To: Jason Rumney; +Cc: Chong Yidong, 5372
>>>> It looks like url-retrieve-synchronously is not finished when run in a
>>>> timer. Is that expected behaviour?
>>>> It looks like it hangs in accept-process-output.
>> Could this be a manifestation of Bug#5359, "process-send-region hangs
>> ntEmacs if region >64K"?
>> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5359
> url-retrieve-synchronously should not be using a subprocess, so unlikely.
It does use a subprocess. But it typically doesn't send much data via
process-send-region (tho it can easily receive a lot of data from such
processes).
Stefan
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2010-01-14 4:33 ` Stefan Monnier
@ 2010-01-14 5:21 ` Jason Rumney
0 siblings, 0 replies; 14+ messages in thread
From: Jason Rumney @ 2010-01-14 5:21 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Chong Yidong, 5372
On 14/01/2010 12:33, Stefan Monnier wrote:
>> url-retrieve-synchronously should not be using a subprocess, so unlikely.
>>
> It does use a subprocess. But it typically doesn't send much data via
> process-send-region (tho it can easily receive a lot of data from such
> processes).
>
The "subprocess" it uses should be a network socket, not a real
subprocess. The lisp interface is the same, but I am fairly certain
that bug#5359 is caused by a limitation in Windows stdio buffering
between processes, not by anything internal to Emacs, so it should only
affect real subprocesses.
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2010-01-13 9:21 ` bug#5372: Calling url-retrieve-synchronously in a timer Lennart Borgman
2010-01-13 14:43 ` Stefan Monnier
@ 2011-09-18 10:26 ` Lars Magne Ingebrigtsen
2011-09-19 18:39 ` Stefan Monnier
2 siblings, 0 replies; 14+ messages in thread
From: Lars Magne Ingebrigtsen @ 2011-09-18 10:26 UTC (permalink / raw)
To: Lennart Borgman; +Cc: 5372
Lennart Borgman <lennart.borgman@gmail.com> writes:
> It looks like url-retrieve-synchronously is not finished when run in a
> timer. Is that expected behaviour?
>
> It looks like it hangs in accept-process-output.
Is this still a problem with the current Emacs 24?
Using `accept-process-output' from a timer should work, I think. In
case this still doesn't work, do you have a test case to reproduce the
bug?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog http://lars.ingebrigtsen.no/
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2010-01-13 9:21 ` bug#5372: Calling url-retrieve-synchronously in a timer Lennart Borgman
2010-01-13 14:43 ` Stefan Monnier
2011-09-18 10:26 ` Lars Magne Ingebrigtsen
@ 2011-09-19 18:39 ` Stefan Monnier
2012-01-07 4:33 ` Lars Magne Ingebrigtsen
2 siblings, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2011-09-19 18:39 UTC (permalink / raw)
To: Lennart Borgman; +Cc: 5372
> It looks like url-retrieve-synchronously is not finished when run in a
> timer. Is that expected behaviour?
> It looks like it hangs in accept-process-output.
I don't think there's a deep reason why url-retrieve-synchronously can't
run from a timer. If you find a problem with it, please make a proper
bug report, with the usual detailed information.
Note that url-retrieve-synchronously may block for indefinite amounts of
time waiting for some remote host to answer, so if run from a timer,
you'll need/want with-local-quit (or while-no-input) so the user can
interrupt it if needed.
Stefan
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#5372: Calling url-retrieve-synchronously in a timer
2011-09-19 18:39 ` Stefan Monnier
@ 2012-01-07 4:33 ` Lars Magne Ingebrigtsen
0 siblings, 0 replies; 14+ messages in thread
From: Lars Magne Ingebrigtsen @ 2012-01-07 4:33 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 5372
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> I don't think there's a deep reason why url-retrieve-synchronously can't
> run from a timer. If you find a problem with it, please make a proper
> bug report, with the usual detailed information.
More information was requested, but no response was given within a few
months, so I'm closing this bug report. If the problem still exists,
please reopen this bug report.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog http://lars.ingebrigtsen.no/
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2012-01-07 4:33 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <e01d8a51001122054x7d2489eu6cf17ca3579368d4@mail.gmail.com>
2010-01-13 9:21 ` bug#5372: Calling url-retrieve-synchronously in a timer Lennart Borgman
2010-01-13 14:43 ` Stefan Monnier
2010-01-13 15:17 ` Lennart Borgman
2010-01-13 18:49 ` Stefan Monnier
2010-01-13 19:09 ` Lennart Borgman
2010-01-13 19:57 ` Stefan Monnier
2010-01-13 16:02 ` Chong Yidong
2010-01-13 16:21 ` Lennart Borgman
2010-01-13 22:54 ` Jason Rumney
2010-01-14 4:33 ` Stefan Monnier
2010-01-14 5:21 ` Jason Rumney
2011-09-18 10:26 ` Lars Magne Ingebrigtsen
2011-09-19 18:39 ` Stefan Monnier
2012-01-07 4:33 ` Lars Magne Ingebrigtsen
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).