-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
qtbase unstable on Windows #10
Comments
I'm pretty sure that the R Windows GUI is iterating the Windows event loop from multiple threads and Qt is somehow being driven by both/all of them. Typically, event loops in GUI toolkits like Qt are single-threaded for the benefit (simplicity) of the application (but applications can run multiple event loops, like with dialogs). The "recursive repaint detected" is an indicator that Qt does not expect to have multiple threads painting the same widget. One possible solution is to abandon the R Windows GUI. This means either R batch mode, or a Qt-based R GUI. The latter already exists: R Studio. But R Studio does not run 64bit on Windows yet, because of the Qt binary availability. That was supposed to have changed with Qt 5.1. I am making good progress on a Qt 5.x qtbase. Thanks for your hard work this summer. |
Hi Michael, how is your Qt 5.x qtbase going? |
It compiles... just need to get it to link... On Thu, Oct 10, 2013 at 12:31 PM, Yihui Xie [email protected]:
|
Update: tweaked linker flags, got further, hit bug in Qt 5.1. Will report. On Thu, Oct 10, 2013 at 12:33 PM, Michael Lawrence [email protected]:
|
Awesome! |
Update: Qt will fix the bug; currently figuring out a work-around for now. On Mon, Oct 14, 2013 at 10:38 AM, Yihui Xie [email protected]:
|
On Mon, Oct 14, 2013 at 11:14 PM, lawremi [email protected] wrote:
Is this applicable to both Linux and Windows, or just Windows? What's |
This applies to all platforms; sorry, sort of abusing this ticket. On Tue, Oct 15, 2013 at 4:13 AM, deepayan [email protected] wrote:
|
Qt 5.2 beta released with fix; grabbing now. |
Awesome! Thanks! |
With some bug fixes to Qt (so obvious I won't bother reporting) and tweaks Michael On Fri, Oct 25, 2013 at 4:01 PM, Yihui Xie [email protected] wrote:
|
Sounds great! |
Following unstable behavior has been detected for qtbase in Windows platform:
qtpaint and cranvas both depend on qtbase package, and although both of these packages show warnings such as "recursive repaint detected", I believe all the above 3 crashes are happening due to lack of synchronization between single-threaded R's event-loop and Qt's event-loop.
EventLoop.cpp file in qtbase has an effort to perform the eventloop synchronization between R and Qt for linux platform but nothing corresponding to Windows, specially because of the absence of "addInputHandler" type of mechanism in Windows.
One possible approach for making the Windows version stable could be to mimic the eventloop synchronization in linux by creating a dummy window in Windows and sending message to it.
Test Platform: Windows 7 64 bit
R version: 3.0.1
Qt version: 4.8.4
The text was updated successfully, but these errors were encountered: