43 |
return &bOldCondition; |
return &bOldCondition; |
44 |
} |
} |
45 |
|
|
46 |
bool* ConditionServer::PushAndUnlock(bool bCondition, long TimeoutSeconds, long TimeoutNanoSeconds) { |
bool* ConditionServer::PushAndUnlock(bool bCondition, long TimeoutSeconds, long TimeoutNanoSeconds, bool bAlreadyLocked) { |
47 |
bool* pBefore = Push(bCondition, TimeoutSeconds, TimeoutNanoSeconds); |
dmsg(3,("conditionserver:PushAndUnlock() requesting change to %d\n", bCondition)); |
48 |
|
if (!bAlreadyLocked) PushMutex.Lock(); |
49 |
|
bool& c = Condition.GetConfigForUpdate(); |
50 |
|
bOldCondition = c; |
51 |
|
c = bCondition; |
52 |
|
Condition.SwitchConfig() = bCondition; |
53 |
Unlock(); |
Unlock(); |
54 |
return pBefore; |
return &bOldCondition; |
55 |
} |
} |
56 |
|
|
57 |
void ConditionServer::Unlock() { |
void ConditionServer::Unlock() { |