Last fix was not complete, since it didn't take `EAGAIN' semantic
differences between Linux and FreeBSD in consideration.
Reported by: Vasily Postnicov <shamaz.masum@gmail.com>
Obtained from: cc50634551
Differential Revision: https://reviews.freebsd.org/D33931