How to deal with data constraint in peresence of loop in a transaction

17 views
Skip to first unread message

Alireza Farhadi

unread,
Sep 9, 2013, 8:17:53 AM9/9/13
to reo...@googlegroups.com
Hi Dear Members,

Suppose we draw a network like below. This network results from composing 2 sub networks: a Joiner (A+E->C) and a Replicator (C->E.F) on shared nodes C and E. Both of 2 sub networks have a trivial behavior in CA but when we look at the resulted network how should we express its behavior for data flow?

I think CA of this network only can express what nodes are active in its single the transaction. Is there any semantic in which we can deal with any loop during a transaction on Reo network? 

In simple word if we have such network, which Reo semantic can determine data value on single output port F? (specially when we replace simple Sync channels to Transformer ones)

Regards,
Alireza Farhadi
Loop-Reo.png
loop-CA.png

Christian Krause

unread,
Sep 9, 2013, 2:09:10 PM9/9/13
to reo...@googlegroups.com
Hi Alireza,

the semantics of this connector is not well-defined. This is because the dataflow loop is synchronous. It is essentially a causality problem: B must wait for the data from E before it can fire, and data can arrive at E only if B already fired. If you would implement something like this using primitive concurrency constructs like semaphores you would get a deadlock. In CA and other formal models of Reo the semantics of such connectors is not well-defined. To get something meaningful you need to either break up the loop, or turn one of the Sync channels into a FIFO, so that the loop becomes asynchronous.

Cheers,
Christian


2013/9/9 Alireza Farhadi <alireza...@gmail.com>

--
You received this message because you are subscribed to the Google Groups "reo-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to reo-dev+u...@googlegroups.com.
To post to this group, send email to reo...@googlegroups.com.
Visit this group at http://groups.google.com/group/reo-dev.
For more options, visit https://groups.google.com/groups/opt_out.

Reply all
Reply to author
Forward
0 new messages