Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-63981

QSocketNotifier with stdin fires activated() signal continuously on macOS

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Invalid
    • Icon: P2: Important P2: Important
    • None
    • 5.9.0, 5.9.1, 5.9.2
    • Network: Sockets
    • None
    • macOS Sierra 10.12.6

      Qt 5.9.2 or earlier.
    • macOS

      When using QSocketNotifier with stdin under macOS the activated() signal fires continuously causing the CPU to spike to 100%. The same doesn't happen under Linux for example.

      The way it's used is pretty basic. You have a QSocketNotifier* m_notifier and you attach it to the signal/slot using the following way:

      m_notifier = new QSocketNotifier(fileno(stdin), QSocketNotifier::Read, this);
      connect(m_notifier, SIGNAL(activated(int)), this, SLOT(readMessages()));

       

      Even when the readMessages() function performs a blocking std::cin.read() it doesn't help at all. Something is clearly happening under macOS that is not correct.

       

        1. CMakeLists.txt
          0.5 kB
        2. main.cpp
          0.2 kB
        3. mainwindow.cpp
          0.5 kB
        4. mainwindow.h
          0.4 kB
        5. mainwindow.ui
          0.6 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            tpochep Timur Pocheptsov
            jirauser43614 user-9b314 (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes