Comment 15 for bug 840708

Revision history for this message
In , Martin-sandsmark (martin-sandsmark) wrote :

Git commit ac59cc7e007a3ef73a07f3d31d4a9516fd5f56f5 by Martin T. H. Sandsmark.
Committed on 16/07/2018 at 11:46.
Pushed by sandsmark into branch 'master'.

Fix hang on a lot of output from a program

Summary:
There is a bug in the Qt glib event loop leading to timers never being
able to deliver signals.

Work around this by disabling the glib event loop.

References:
http://lists.qt-project.org/pipermail/interest/2015-September/018846.html
https://bugreports.qt.io/browse/QTBUG-48344

Test plan:
>From the referenced bug:
    Stefan Westerfeld 2010-03-10 11:40:24 UTC
    Running the following program within konsole:

        #include <stdio.h>

        int
        main()
        {
          for (int i = 0; i < 100000000; i++)
            {
              fprintf (stderr, "foo %d\n", i);
            }
        }

    leads to a freeze - not single message is printed - no reaction on
    return. Only after a long time (30 seconds) something happens.

    If I run the same program in an xterm, the messages are scrolling
    through, as I would expect from that kind of output.

Reviewers: #konsole, hindenburg

Reviewed By: #konsole, hindenburg

Subscribers: hindenburg

Tags: #konsole

Differential Revision: https://phabricator.kde.org/D6078

M +8 -0 src/main.cpp
A +15 -0 tests/spam-stderr.c [License: UNKNOWN] *

The files marked with a * at the end have a non valid license. Please read: https://community.kde.org/Policies/Licensing_Policy and use the headers which are listed at that page.

https://commits.kde.org/konsole/ac59cc7e007a3ef73a07f3d31d4a9516fd5f56f5