-
The cFE call for receiving a software bus message, The problem with basing the timeout off the absolute system clock rather than as a duration based on clock ticks (as RTEMS and Vxworks do), is that if they system clock changes, the timeout is affected. I have observed a situation if the system clock is updated (for example, after resetting the clock based on acquired GPS signal after being suspended) calls to What's the recommended way of dealing with this? Do I somehow need to send messages to all pending receives after the system time is updated so that they get unblocked? Do I need to restart my apps after changing system time? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
Thanks for reporting this! This indeed is a problem with the underlying posix API. I looked into it and there may be some methods to get it to use CLOCK_MONOTONIC instead of CLOCK_REALTIME. Will write up an issue over in OSAL and maybe we can do something there. In the meantime - yes, if you send a benign message (like a no-op command or something) that should wake up the task and get it unblocked. In practice, most CFE SB pipes have some periodic traffic so that's probably why this anomaly hadn't been observed. |
Beta Was this translation helpful? Give feedback.
Thanks for reporting this! This indeed is a problem with the underlying posix API. I looked into it and there may be some methods to get it to use CLOCK_MONOTONIC instead of CLOCK_REALTIME. Will write up an issue over in OSAL and maybe we can do something there.
In the meantime - yes, if you send a benign message (like a no-op command or something) that should wake up the task and get it unblocked. In practice, most CFE SB pipes have some periodic traffic so that's probably why this anomaly hadn't been observed.