6 Replies Latest reply on May 9, 2014 2:56 PM by Ross Horne

    Tracing parallel events

    Ross Horne Newbie

      We're having difficulty with a core feature of monitors for scribble. Sequential protocols can be monitored correctly. However, we can't seam to monitor protocols with parallel composition.


      The following simple protocol demonstrates this problem. Role A sends messages to two separate roles in parallel.


      global protocol P(role A, role B, role C) {

        par {

            x(M) from A to B;

          } and {

            y(M) from A to C;




      Using the DefaultMonitor from the Java Developer Guide, trying to observe either send at A, or either receive at B or C, is always unsuccessful.


      The same problem can be observed with the tracer. For example the following trace, that sends to B first, then sends to C, should be a valid interleaving of events.




        "message":{ "operator":"x", "types":["M"], "values":[""]  },

        "fromRole":"A", "toRoles":["B"]



        "message":{ "operator":"y", "types":["M"], "values":[""]  },

        "fromRole":"A",  "toRoles":["C"]



      Can you reproduce this problem when monitoring protocols with parallel composition? ... or perhaps spot a more basic problem with the above protocol?


      Thank you for any pointers ,