erlang: channel fixed write-then-read semantics