> On Dec 12, 2024, at 10:00 AM, Duncan Murdoch <murdoch.dun...@gmail.com> wrote:
>
> On 2024-12-11 3:43 p.m., Michael Hall wrote:
>>>
>>> Message: 1
>>> Date: Wed, 11 Dec 2024 12:25:42 -0500
>>> From: Duncan Murdoch <murdoch.dun...@gmail.com>
>>> To: R-SIG-Mac <R-SIG-Mac@r-project.org>
>>> Subject: [R-SIG-Mac] R.app not handling events
>>> Message-ID: <bdf048f1-b010-4845-a67a-f24edf634...@gmail.com>
>>> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>>>
>>> Every now and then R.app stops responding to various events while a
>>> long-running command is executing. I can't scroll the console to look
>>> at earlier results, and I don't see partial results until the whole
>>> computation is complete. If I ask MacOS to switch to that window, it
>>> won't come to the top (though clicking on it does bring it up, but I
>>> need to be able to see part of it to do that).
>>>
>>> Once it finishes it returns to the console prompt and things look fine,
>>> but the same thing happens during the next long-running command.
>>>
>>> This happens every now and then, but I haven't spotted the cause. The
>>> only solution I've found is to quit the session and restart it.
>>>
>>> Does anyone know what might be causing this, or a way to fix it without
>>> ending the session?
>>>
>>> Duncan Murdoch
>>>
>> You could maybe look at what the app shows on Activity Monitor. Is it doing
>> anything? CPU, IO?
>> You can spin dump from there but I’ve never found that particularly
>> revealing.
>
> It's definitely still working. The typical situation where I've seen this
> lately is when doing some web scraping with RSelenium. Sometimes it takes 10
> minutes to visit all the pages and find the info I'm after (not because it's
> a lot of downloading, it's because the site is very slow).
>
> Normally my code prints status reports as it goes so I can tell what's
> happening in the console. When things are in the broken state, those don't
> show up until everything is done. But I can still see the controlled copy of
> Chrome visiting pages, so I know it hasn't crashed. It doesn't seem any
> slower, it's just that there are no updates in the console or responses to
> user interaction while the command is running.
>
The GUI only gets to update things if the user code allows it to process
events. If the package you are using doesn't let R process the event loop or if
it uses code that explicitly disallows it (e.g. for re-entrance reasons) then
there is nothing the GUI can since both R and the GUI run on the main thread
(macOS doesn't allow it otherwise) so the GUI only gets to respond if R
relinquishes control.
Note that some actions in the GUI require R code evaluations so those will all
bock until your code finishes, effectively freezing the GUI.
It would be nice to see what are the exact conditions - i.e., what is it that
blocks the event loop, ideally some reproducible example to see if there is
anything we can do about it in R itself.
Cheers,
Simon
_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-mac