monitor/slide/2/6.html

23 lines
1.1 KiB
HTML

<titolo>Un esempio di monitor</titolo>
<corpo>
<codeblock>
<name>single resource</name>: <kw>monitor</kw><br />
<kw>begin</kw><br />
<idt></idt><name>busy</name>: <type>Boolean</type>;<br />
<idt></idt><name>nonbusy</name>: <type>condition</type>;<br />
<idt></idt><kw>procedure</kw> <name>acquire</name>;<br />
<idt></idt><idt></idt><kw>begin</kw><br />
<idt></idt><idt></idt><idt></idt><kw>if</kw> <name>busy</name> <kw>then</kw> <name>nonbusy</name>.<call>wait</call>;<br />
<idt></idt><idt></idt><idt></idt><name>busy</name> := <value>true</value><br />
<idt></idt><idt></idt><kw>end</kw>;<br />
<idt></idt><kw>procedure</kw> <name>release</name>;<br />
<idt></idt><idt></idt><kw>begin</kw><br />
<idt></idt><idt></idt><idt></idt><name>busy</name> := <value>false</value>;<br />
<idt></idt><idt></idt><idt></idt><name>nonbusy</name>.<call>signal</call><br />
<idt></idt><idt></idt><kw>end</kw>;<br />
<idt></idt><name>busy</name> := <value>false</value>;<br />
<kw>end</kw> <name>single resource</name>
</codeblock>
</corpo>
<autore>Pietro Tessarolo</autore>