@SoniEx2 I'm not sure what that means. You don't have the fd number until socket returns. Lowest-available assignment is guaranteed though so presumably you reliably get either EBADF or success, but in any nontrivial MT setting this would be a programming error because you would have no idea if the fd were assigned somewhere else instead.