fixed a bug that connection object may not be freed after socket close sometimes

pending and further data should be thrown if send has failed, otherwise
the other endpoint's recv may be paused if buffer was full and it would
never recv shutdown or close