builtin: doc chan.v channel stub (#8577)

pull/8639/head
Larpon 2021-02-07 11:42:24 +01:00 committed by GitHub
parent d62918581e
commit bfd0bd1fb4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 2 deletions

16
vlib/builtin/chan.v 100755 → 100644
View File

@ -1,20 +1,32 @@
module builtin
// ChanState describes the result of an attempted channel transaction.
enum ChanState {
success
not_ready // push()/pop() would have to wait, but no_block was requested
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() {}
// 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 {
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 {
return .success
}