A nonblocking TCP service framework for erlang