|
From: | Jonathan Larmour |
Subject: | Re: [lwip-users] SemSignal gets called on a already signaled semaphore |
Date: | Fri, 01 Jun 2007 00:08:17 +0100 |
User-agent: | Mozilla Thunderbird 1.0.8-1.1.fc4 (X11/20060501) |
Clive Wilson wrote:
At 10:20 31/05/2007, you wrote:So waiting on a semaphore would mean: lock mutex while (count==0) wait on condition variable count-- unlock mutex And posting a semaphore: lock mutex count++ signal condition variable unlock mutexJonathan,As a clarification of the above example, is the intention for the mutex used by the semaphore pend to be the same as the one used by the semaphore post? I imagine not, otherwise the pend would wait on the condition variable with the mutex locked, therefore preventing a post from occurring...
It is the same mutex. Condition variables always have a mutex associated with them. When you wait on a CV, the mutex is automatically unlocked by the OS, and when you wake up after the CV is signalled, the OS automatically relocks the mutex before the wait function returns.
Jifl -- eCosCentric Limited http://www.eCosCentric.com/ The eCos experts Barnwell House, Barnwell Drive, Cambridge, UK. Tel: +44 1223 245571 Registered in England and Wales: Reg No 4422071. ------["The best things in life aren't things."]------ Opinions==mine
[Prev in Thread] | Current Thread | [Next in Thread] |