saving blocking state
done reset_socket better