Answered step by step
Verified Expert Solution
Link Copied!

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

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions