Events: Difference between revisions
Content added Content deleted
(Added F# version) |
No edit summary |
||
Line 393: | Line 393: | ||
putStrLn "[2] Received event."</lang> |
putStrLn "[2] Received event."</lang> |
||
Note: Because there is no serialization of the text output, there is a chance that it will appear interleaved. |
Note: Because there is no serialization of the text output, there is a chance that it will appear interleaved. |
||
==Icon and {{header|Unicon}}== |
|||
The following only works in Unicon: |
|||
<lang unicon>record Event(cond, value) |
|||
procedure main() |
|||
event := Event(condvar()) |
|||
t1 := thread { |
|||
write("Waiting for event....") |
|||
critical event.cond: while /(event.value) do wait(event.cond) |
|||
write("Event occurred.") |
|||
} |
|||
t2 := thread { |
|||
delay(1000) |
|||
event.value := "yes" |
|||
write("Signalling event.") |
|||
signal(event.cond) |
|||
} |
|||
every wait(t1|t2) |
|||
end</lang> |
|||
Sample run: |
|||
<pre> |
|||
->event |
|||
Waiting for event.... |
|||
Signalling event. |
|||
Event occurred. |
|||
-> |
|||
</pre> |
|||
=={{header|JavaScript}}== |
=={{header|JavaScript}}== |