JoinNode extends ActivityNode, ExecutionEdgeDestination, ExecutionEdgesSource

Joins multiple split execution threads back together. Halts until all threads are complete.

An ActivityOperation may contain any number of JoinNodes. Each JoinNode must have at least one incoming ExecutionEdge, and at least one outgoing ExecutionEdge.

If an executing thread arrives at a JoinNode, the thread will be removed from the associated thread set of that thread. If the thread set is not empty, execution of the thread will be suspended until such a point that the thread set is empty. If the thread set is empty, then the multithreaded execution originating from the original SplitNode will be considered complete, and the execution flow will continue from the SplitNode as normal. If an unthreaded execution flow arrives at a JoinNode, an exception must occur.

The JoinNode element is based off the UML JoinNode model element.

[JoinNode.html]

Examples

Implementation Notes

Inference Rules

(none)

Constraints

(none)

Attributes

(none)

Inherited Attributes

Children

(none)

Inherited Children

(none)

References

(none)

Inherited References

Extensions

Inherited Extensions