refine send/recv sync