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

QML type loader thread has data races

    XMLWordPrintable

Details

    Description

      QQmlDataBlob is a refcounted data structured used from the engine thread as well as from the type loader thread. Whichever of those drops the last reference will delete it.

      The data blobs are linked to each other with "waitingFor" and "waitingOnMe" links. The "waitingFor" links are refcounted and therefore safe enough for this discussion. The "waitingOnMe" links are not refcounted to avoid reference cycles.

      The dtor of QQmlDataBlob removes the blob to be deleted from all "waitingOnMe" lists of other blobs. This is inherently unsafe. Those lists may be read from on the other thread at the same time.

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-131721
          # Subject Branch Project Status CR V

          Activity

            People

              ulherman Ulf Hermann
              ulherman Ulf Hermann
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There is 1 open Gerrit change