Implement a lock template in locks module.

This commit is contained in:
Dominik Picheta 2016-03-18 19:06:34 +00:00
commit f0341979bd

View file

@ -54,3 +54,11 @@ proc wait*(cond: var Cond, lock: var Lock) {.inline.} =
proc signal*(cond: var Cond) {.inline.} =
## sends a signal to the condition variable `cond`.
signalSysCond(cond)
template lock*(a: Lock, body: stmt) =
a.acquire()
{.locks: [a].}:
try:
body
finally:
a.release()