fixes #4746
This commit is contained in:
parent
66bbf7518e
commit
2569a58f08
1 changed files with 4 additions and 2 deletions
|
|
@ -242,8 +242,10 @@ proc recv*[TMsg](c: var Channel[TMsg]): TMsg =
|
||||||
|
|
||||||
proc tryRecv*[TMsg](c: var Channel[TMsg]): tuple[dataAvailable: bool,
|
proc tryRecv*[TMsg](c: var Channel[TMsg]): tuple[dataAvailable: bool,
|
||||||
msg: TMsg] =
|
msg: TMsg] =
|
||||||
## try to receives a message from the channel `c` if available. Otherwise
|
## try to receives a message from the channel `c`, but this can fail
|
||||||
## it returns ``(false, default(msg))``.
|
## for all sort of reasons, including contention. If it fails,
|
||||||
|
## it returns ``(false, default(msg))`` otherwise it
|
||||||
|
## returns ``(true, msg)``.
|
||||||
var q = cast[PRawChannel](addr(c))
|
var q = cast[PRawChannel](addr(c))
|
||||||
if q.mask != ChannelDeadMask:
|
if q.mask != ChannelDeadMask:
|
||||||
if tryAcquireSys(q.lock):
|
if tryAcquireSys(q.lock):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue