Uploaded image for project: 'Qt Safe Renderer'
  1. Qt Safe Renderer
  2. QSR-495

Improve msgHandler to use sockets and slots in desktop telltales example

    XMLWordPrintable

Details

    • Linux/Wayland, Linux/X11, Linux/Other display system
    • 19e924b2948d66887022b72d4942ff6a1dedcc0f

    Description

      During QSR-337 it turned out to be a very difficult to debug a simple typo bug as currently msgHandler.cpp in desktop telltales example disconnects test.py immediately if it cannot read data from socket. This in turn makes the test unpredictable as the python program cannot always keep up with the telltales and the connection is closed during testing. Also, stepping or simply delaying test steps is impossible and makes seeing problems on screen difficult.

      The reason msgHandler.cpp currently disconnects immediately from the client and not block waiting for more data is that otherwise the GUI might appear hanging as also Qt app's event loop is blocked.

      Possible solutions would be to make use of signals and slots to make receiving asynchronous call back or create a new thread for message handling, which could require some synchronization between the threads.

      Study the pros and cons of the solutions and implement a working one.

       

      TestRail: Results

        Attachments

          Activity

            People

              jani.launonen Jani Launonen (Inactive)
              jani.launonen Jani Launonen (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 2 days
                  2d
                  Remaining:
                  Remaining Estimate - 2 days
                  2d
                  Logged:
                  Time Spent - Not Specified
                  Not Specified

                  TestRail: Runs

                    TestRail: Cases