Implement a lock template in locks module.

This commit is contained in:
Dominik Picheta
2016-03-18 19:06:34 +00:00
parent 8dade039d7
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()