• Icon: Sub-task Sub-task
    • Resolution: Won't Fix
    • Icon: Low Low
    • long term roadmap
    • 3.1.8
    • CIJ Plugin
    • None

      External build supports parallel compilation. Modules are built in parallel, while files in a single module are compiled sequentially.

      Clover expects that at least a single file is instrumented sequentially (the FileInto getCoverageMask which returns bitmask based on index range), so that the clover database contains continuous range of indexes for code elements from a single file. It means that we need to synchronize per file. It should not be a problem that subsequent files in database are from different modules.

      possible solutions:

      1) simple lock per whole file in some synchronized block; drawback: turns parallel build into single-threaded one.

      2) batch operations, like first instrument whole file using relative indexes, next lock database and store information about whole file, database would return base offset value; still in sychronized block but locked for shorter amount of time;

      3) change clover.db structure so that elements could be registered in any order; change FileInfo getCoverageMask function (and related); check for any data structures which needs to be made thread-safe;

            [CLOV-1267] Check how parallel instrumentation can be handled

            Michael Andreacchio made changes -
            Resolution New: Won't Fix [ 2 ]
            Status Original: Open [ 1 ] New: Closed [ 6 ]
            Marek Parfianowicz made changes -
            Assignee Original: Marek Parfianowicz [ mparfianowicz ]
            Owen made changes -
            Workflow Original: New Clover Workflow [ 898081 ] New: New Clover Workflow - Restricted [ 1475081 ]
            Piotr Swiecicki made changes -
            Workflow Original: Clover Workflow [ 896562 ] New: New Clover Workflow [ 898081 ]
            Piotr Swiecicki made changes -
            Workflow Original: reviewflow [ 517597 ] New: Clover Workflow [ 896562 ]
            Marek Parfianowicz made changes -
            Fix Version/s New: long term roadmap [ 54394 ]
            Fix Version/s Original: 4.3.x [ 29907 ]
            Marek Parfianowicz made changes -
            Fix Version/s New: 3.4.xx [ 29907 ]
            Fix Version/s Original: 3.4.2 [ 28194 ]
            Marek Parfianowicz made changes -
            Fix Version/s New: 3.2.2 [ 28194 ]
            Fix Version/s Original: 3.1.12 [ 31997 ]
            Marek Parfianowicz made changes -
            Link Original: This issue details CLOV-1282 [ CLOV-1282 ]
            Marek Parfianowicz made changes -
            Link New: This issue details CLOV-1282 [ CLOV-1282 ]

              Unassigned Unassigned
              mparfianowicz Marek Parfianowicz
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: