fix - channel write bug hurt performance
add - channel flush event