Mutex: Difference between revisions

(Nimrod -> Nim)
Line 625:
Mutex.unlock m;</lang>
 
=={{header|Oforth}}==
 
Oforth has no mutex.
A mutex can be simulated using a channel initialized with one object.
A task can receive the object from the channel (get the mutex) and send it to the channel when the job is done.
If the channel is empty, a task will wait until an object is available into the channel.
 
<lang Oforth>func: job(mut)
{
mut receive drop
"I get the mutex !" println
System sleep(2000)
"Now I release the mutex" println
mut send(1) drop
}
 
func: mymutex
{
| mut |
Channel new dup send(1) drop ->mut
#[ #[ job(mut) ] & ] times(10)
}</lang>
 
=={{header|Oz}}==
1,015

edits