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

Revise threading model of DOM

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: P2: Important P2: Important
    • Some future release
    • Some future release
    • QML: Tooling
    • None

      Currently DOM has multiple sync points based on mutexes and lot's of shared_ptr's (managed values of which are not thread-safe) stored in maps of DomEnvironment and DomUniverse.

      Taking into account that DOM is indeed being used in the multi-threaded environments. It would be helpful to:

      1. Figure out the usecases and thread management
      2. Improve explicitness of the sync points
      3. Improve thread-safety. There might be potential data-races / deadlocks, we're not aware of
      4. Reconsider thread sync approach. maybe we can do everything in lock-free manner
      5. Remove DomEnv::Options::SingleThreaded, 'cos it doesn't say anything and DOM is used in multithreaded env?
      6. Also there might happen a sync problem between with the current file and created dom as you edit the file. Sometimes, we get invalid dom on editing the document even if the document is syntactically correct.

       

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            qtqmlteam Qt Qml Team User
            dima.a Dmitrii Akshintsev
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes