- FIXED: When a take is fulfilled by a waiting put, it now correctly invalidates other operations belonging to the same
alts
.
- CHANGED: Official transducer protocol is now supported, instead of the old protocol.
- ADDED: Single-write multi-read behavior is now supported via promise buffers and promise channels.
- ADDED: Pipelining functions
pipeline
andpipelineAsync
. - FIXED:
mix
now properly handles solos and mutes.
- FIXED: Incorrect handling of multiple pending puts/takes is now fixed.
- ADDED: Each goroutine now keeps a reference to its generator function, for debugging purpose.
- FIXED:
alts
' at-most-once guarantee is no longer violated when there is an operation that:- Attempts to put on a closed channel.
- Is registered after other not-ready-yet operations, causing one of these operation to be fulfilled as well.
- ADDED: Buffered channels can use transducers to transform values put onto them.
- CHANGED: Each goroutine now always returns a channel.
- CHANGED:
yield ch
now behaves the same asyield take(ch)
. - CHANGED:
sleep
is deprecated in favor oftimeout
.
- FIXED: Pending puts are now properly processed when takes make place for them in the buffer.
- ADDED: Channel operations, grouped under
csp.operations
(map, filter, pipe...). - ADDED: Named special values:
DEFAULT
: Returned as.channel
when no operation is ready for a non-blockingalts
.CLOSED
: Returned when taking from a closed channel (still equal tonull
).
- ADDED: More example from Go slides.
- CHANGED: Rename
wait
intosleep
. - FIXED: Goroutine's output channel is now closed after return value is delivered.
- CHANGED: More reliable
mocha
test helpers. - FIXED: Delayed puts now correctly returns
true
on succeed.
- ADDED: Priority and default options for
alts
. - ADDED: Tests.
- ADDED: Examples.
- ADDED: Preliminary documentation.
- REMOVED:
stop
. - CHANGED: Small optimization for
alts
. - CHANGED: camelCase for public APIs.
- FIXED:
yield
ing normal values is now allowed. - FIXED: Returning value from goroutine is now allowed.
- FIXED: Closing channels now does not hang pending puts.
- FIXED: Call stack no longer grows unboundedly when results are immediately available.
- Initial release.