主题:一个管程底程实现问题
在基于Hoare管程中的条件变量x(condition value)的x.wait()操作底程实现如下:
x-count++;
if(next-count>0)
signal(next);//不懂的地方
else
signal(mutex);
wait(x-sem);
x-count--;
x.signal()的底程实现如下:
if (x-count>0){
next-count++;
sigal(x-sem);
wait(next);
next-count--;
}
条件变量x的实现如下
wait(mutex);
.......
body of f();
.........
if(next-count>0)
signal(next);
else
signal(mutex);//operating concepts有这个程序。
我弄不懂的是为何在x.wait()底程实现中else语句的上面加入signal(next);这样做的目的是什么,请各位大侠详细指点,谢谢
x-count++;
if(next-count>0)
signal(next);//不懂的地方
else
signal(mutex);
wait(x-sem);
x-count--;
x.signal()的底程实现如下:
if (x-count>0){
next-count++;
sigal(x-sem);
wait(next);
next-count--;
}
条件变量x的实现如下
wait(mutex);
.......
body of f();
.........
if(next-count>0)
signal(next);
else
signal(mutex);//operating concepts有这个程序。
我弄不懂的是为何在x.wait()底程实现中else语句的上面加入signal(next);这样做的目的是什么,请各位大侠详细指点,谢谢