This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Question on RTX51Tiny os_wait

What would happen if you have an os_wait or os_wait2 call with an interval of X milliseconds, such as

while {TRUE) {
os_wait2(K_IVL, X);
//do some stuff
}

and the "stuff" takes more than X ticks?

Parents
  • >I would expect the task to run continuously. Every time it comes back around to the os_wait2, the interval timer will already have expired and the OS should just reschedule the task.

    The problem is that I'm not entirely sure that this is what it's doing. I'm getting weird results, although I haven't the time to fully investigate them. It seems like when the interval expires that RTXTiny interrupts the process and restarts it at the wait call. Since I don't care about exact timing, I substituted a timeout call for an interval call and it worked properly.

Reply
  • >I would expect the task to run continuously. Every time it comes back around to the os_wait2, the interval timer will already have expired and the OS should just reschedule the task.

    The problem is that I'm not entirely sure that this is what it's doing. I'm getting weird results, although I haven't the time to fully investigate them. It seems like when the interval expires that RTXTiny interrupts the process and restarts it at the wait call. Since I don't care about exact timing, I substituted a timeout call for an interval call and it worked properly.

Children
No data