Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Why is the following implementation of condition variables wrong? Diagram how a set of threads could interact to achieve an invalid state. class Condition {
Why is the following implementation of condition variables wrong? Diagram how a set of threads could interact to achieve an invalid state.
class Condition
{
private: int waiting;
Semaphore *sema;
}
void Condition::Wait(Lock* l)
{
waiting++;
l->Release();
sema->P();
l->Acquire();
}
void Condition::Signal(Lock* l)
{
if (waiting > 0)
{
sema->V();
waiting--;
}
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access with AI-Powered Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started