Revision c22d21ad doc/activitydiagrams/publisher/urtPublisherPublish.uml
doc/activitydiagrams/publisher/urtPublisherPublish.uml | ||
---|---|---|
48 | 48 |
/'### PROCEDURE ##############################################################'/ |
49 | 49 |
|
50 | 50 |
:lock topic; |
51 |
:lock next message; |
|
52 |
while (HRT consumers left for the message or timeout?) is (yes) |
|
53 |
:unlock message; |
|
54 |
:wait for topic's condition variable (using topic's mutex) to be signaled or timeout; |
|
55 |
:lock message; |
|
51 |
:access next message; |
|
52 |
while (HRT consumers left for the message\nor the message timestamp was modified\nand a timeout occurred?) is (yes) |
|
53 |
if (Message timestamp was modified?) the (yes) |
|
54 |
:iterate to next message; |
|
55 |
else (no) |
|
56 |
:wait for topic's condition variable (using topic's mutex) to be signaled or timeout; |
|
57 |
endif |
|
56 | 58 |
endwhile (no) |
57 | 59 |
if (Timeout occurred?) then (yes) |
58 |
:unlock message; |
|
59 | 60 |
:unlock topic; |
60 | 61 |
:return ""URT_STATUS_ERROR""; |
61 | 62 |
else (no) |
... | ... | |
69 | 70 |
fork again |
70 | 71 |
:set number of HRT consumers (from topic); |
71 | 72 |
endfork |
72 |
:unlock message; |
|
73 | 73 |
fork again |
74 | 74 |
:set QoS rate timer (@topic) wrt. most critical HRT subscriber; |
75 | 75 |
fork again |
Also available in: Unified diff