erlang: channel read-then-write semantics