# Tom Sawyer doesn't render properly control path using Fork/Join

**URL:** <https://forum.sensmetry.com/t/tom-sawyer-doesnt-render-properly-control-path-using-fork-join/385>\
**Category:** Syside\
**Created:** [February 2, 2026, 4:33pm UTC](https://forum.sensmetry.com/t/tom-sawyer-doesnt-render-properly-control-path-using-fork-join/385 "2026-02-02T16:33:06Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![paolo\_milanesi](https://yyz2.discourse-cdn.com/flex008/user_avatar/forum.sensmetry.com/paolo_milanesi/32/208_2.png) [@paolo\_milanesi](https://forum.sensmetry.com/u/paolo_milanesi)\
**Post date:** [February 2, 2026, 4:33pm UTC](https://forum.sensmetry.com/t/tom-sawyer-doesnt-render-properly-control-path-using-fork-join/385/1 "2026-02-02T16:33:06Z")

</div>

Hello,

I tried to see the action diagram for the Lesson 17 and I was not able to see properly the action flow when fork/join are used.

then I tried a simpler example, and even here it seems that the basic concept of fork/join is not working.

Am I doing something wrong?

 ![image](https://canada1.discourse-cdn.com/flex008/uploads/syside/original/1X/bd6323b2179cc67f0829335b3f97e9f445dcddeb.png)

---

<div class="post-metadata">

**Author:** ![Simonas](https://yyz2.discourse-cdn.com/flex008/user_avatar/forum.sensmetry.com/simonas/32/13_2.png) [@Simonas](https://forum.sensmetry.com/u/Simonas)\
**Post date:** [February 9, 2026, 12:18pm UTC](https://forum.sensmetry.com/t/tom-sawyer-doesnt-render-properly-control-path-using-fork-join/385/2 "2026-02-09T12:18:42Z")

</div>

Hi Paolo!

You can get the visualisation to work correctly by moving the model around a bit. I have referred to Slide 40 of [Into to the SysML v2 Language-Textual Notation](https://github.com/Systems-Modeling/SysML-v2-Release/blob/master/doc/Intro%20to%20the%20SysML%20v2%20Language-Textual%20Notation.pdf) slides from the official SysML v2 GitHub when refactoring the model.

These are the main changes I did:

1. Moved the `add1` and `add2` action definitions out of the ordering section syntax.
2. Added `then joinNode` after those action definitions (the node can be called whatever, not necessarily `joinNode`).
3. In the ordering section, change from `then join;` to just `join joinNode;`.

You can find the model under the screenshot (I put it in an expandable section to avoid clutter). I hope this helps!

 ![Screenshot 2026-02-09 at 14.16.17](https://canada1.discourse-cdn.com/flex008/uploads/syside/original/1X/1cfd3bafc67fa6db404a56aca75365b11d4c3006.jpeg)

> **SysMLv2 model**
>
> ```package
> private import ScalarValues::*;
> 
> action def Add {
> in attribute x : Integer;
> out attribute r : Integer;
> }
> action def Sum {
> in attribute a : Integer;
> in attribute b : Integer;
> out attribute total : Integer;
> }
> action def ProcessDataParallel {
> in attribute data1 : Integer;
> in attribute data2 : Integer;
> out attribute result : Integer;
> 
> attribute add1Result : Integer;
> attribute add2Result : Integer;
> 
> // Moved this action definition out of the ordering section
> action add1 : Add {
> in attribute redefines x = data1;
> out attribute redefines r = add1Result;
> }
> then joinNode;
> 
> // Moved this action definition out of the ordering section
> action add2 : Add {
> in attribute redefines x = data2;
> out attribute redefines r = add2Result;
> }
> then joinNode;
> 
> // Ordering section
> first start;
> then fork;
> then add1;
> then add2;
> join joinNode; // Created a "joinNode" and removed "then" from "then join;"
> then action sum : Sum {
> // You could move out the `sum` action definition as well, but this works too
> in attribute redefines a = add1Result;
> in attribute redefines b = add2Result;
> }
> 
> flow add1.r to sum.a;
> flow add2.r to sum.b;
> flow data1 to add1.x;
> flow data2 to add2.x;
> flow sum.total to result;
> }
> }
> 
> ```

---

<div class="post-metadata">

**Author:** ![paolo\_milanesi](https://yyz2.discourse-cdn.com/flex008/user_avatar/forum.sensmetry.com/paolo_milanesi/32/208_2.png) [@paolo\_milanesi](https://forum.sensmetry.com/u/paolo_milanesi)\
**Post date:** [February 9, 2026, 1:59pm UTC](https://forum.sensmetry.com/t/tom-sawyer-doesnt-render-properly-control-path-using-fork-join/385/3 "2026-02-09T13:59:59Z")

</div>

Hi Simonas,

thanks for the suggestion, it works now.

The solution you proposed (the fact to define action outside the Ordering part, and to have a joinNOde after each action definition) is something expected or shall be considered a temporary workaround?

---

<div class="post-metadata">

**Author:** ![Simonas](https://yyz2.discourse-cdn.com/flex008/user_avatar/forum.sensmetry.com/simonas/32/13_2.png) [@Simonas](https://forum.sensmetry.com/u/Simonas)\
**Post date:** [February 11, 2026, 2:51pm UTC](https://forum.sensmetry.com/t/tom-sawyer-doesnt-render-properly-control-path-using-fork-join/385/4 "2026-02-11T14:51:08Z")

</div>

Since this way is the only one I can find described among the official SysML v2 specification documents, I would assume that this is how it is expected to be used in the long term.

Here is the same example using the `joinNode` in the SysML v2 Release GitHub: [SysML-v2-Release/sysml/src/training/17. Control/Fork Join Example.sysml at master · Systems-Modeling/SysML-v2-Release · GitHub](https://github.com/Systems-Modeling/SysML-v2-Release/blob/master/sysml/src/training/17.%20Control/Fork%20Join%20Example.sysml)
