View Single Post
  #15   Spotlight this post!  
Unread 24-02-2012, 11:05
jwakeman jwakeman is offline
Registered User
FRC #0063 (Red Barons)
Team Role: Mentor
 
Join Date: Jan 2011
Rookie Year: 2010
Location: 16510
Posts: 182
jwakeman is just really nicejwakeman is just really nicejwakeman is just really nicejwakeman is just really nicejwakeman is just really nice
Re: Help me understand PIDController::OnTarget()

Quote:
Originally Posted by wireties View Post
the first is a semaphore used for mutual exclusion (to protect the critical region), in this use-case the semaphore is taken before and given after a critical region of code and always in the same context - the semaphore includes the concept of ownership (by the thread/task) and recursion

the second is a semaphore used for synchronization, in this use-case the semaphore is taken in one context/thread/task and given or flushed in another context - for example given/flushed in a periodic timer callback function (or maybe an interrupt service routine) and taken in a task/thread
I figured. So in QNX parlance (which I am most familar with) these would be a Mutex and Condition Variable. However, I don't see where the semaphore is being flushed in the PIDController implementation. The periodic loop is accomplished with a Notifier calling the Calculate() method periodically. Is the sync actually being used somehow here?
Reply With Quote