builtin: doc chan.v channel stub (#8577)
parent
d62918581e
commit
bfd0bd1fb4
|
@ -1,20 +1,32 @@
|
||||||
module builtin
|
module builtin
|
||||||
|
|
||||||
|
// ChanState describes the result of an attempted channel transaction.
|
||||||
enum ChanState {
|
enum ChanState {
|
||||||
success
|
success
|
||||||
not_ready // push()/pop() would have to wait, but no_block was requested
|
not_ready // push()/pop() would have to wait, but no_block was requested
|
||||||
closed
|
closed
|
||||||
}
|
}
|
||||||
|
|
||||||
// The following methods are only stubs. The real implementation
|
/*
|
||||||
// is in `vlib/sync/channels.v`
|
The following methods are only stubs.
|
||||||
|
The real implementation is in `vlib/sync/channels.v`
|
||||||
|
*/
|
||||||
|
|
||||||
|
// close closes the channel for further push transactions.
|
||||||
|
// closed channels cannot be pushed to, however they can be popped
|
||||||
|
// from as long as there is still objects available in the channel buffer.
|
||||||
pub fn (ch chan) close() {}
|
pub fn (ch chan) close() {}
|
||||||
|
|
||||||
|
// try_pop returns `ChanState.success` if an object is popped from the channel.
|
||||||
|
// try_pop effectively pops from the channel without waiting for objects to become available.
|
||||||
|
// Both the test and pop transaction is done atomically.
|
||||||
pub fn (ch chan) try_pop(obj voidptr) ChanState {
|
pub fn (ch chan) try_pop(obj voidptr) ChanState {
|
||||||
return .success
|
return .success
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// try_push returns `ChanState.success` if the object is pushed to the channel.
|
||||||
|
// try_push effectively both push and test if the transaction `ch <- a` succeeded.
|
||||||
|
// Both the test and push transaction is done atomically.
|
||||||
pub fn (ch chan) try_push(obj voidptr) ChanState {
|
pub fn (ch chan) try_push(obj voidptr) ChanState {
|
||||||
return .success
|
return .success
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue