DLR-FT / a653rs-linux

Apache License 2.0
1 stars 0 forks source link

fix(ping_client, ping_server): wait major frame after sampling port error #104

Closed florianhartung closed 8 months ago

florianhartung commented 8 months ago

The behaviour of the ping example is indeterministic. Sometimes the ping will succeed on the first attempt, while some other times it will take an extended amount of time (>5-10s not being rare).

This happens because both ping_server and ping_client call continue after failing to receive a message from both sampling channels. This in turn causes them to keep trying to receive messages continuously, which is likely to cause them being frozen by the hypervisor in some invalid state.

This indeterministic behaviour is prevented by this PR, by making both periodic processes wait for the next major frame after failing to receive a message.