I found that when I tried to use blocking socket with kqueue and sent a large data (e.g. 65536 bytes), the ff_send would simply fail because the sbwait in uipc_sockbuf.c:449 (which calls a fake sleep function _sleep in ff_kern_synch.c:91) returns 1.
As the developer responded in #30, I agree that it's not recommended to use blocking socket with kqueue. However, in real freebsd kernel, it is allowed to doing this. I think even if f-stack chooses to forbid this kind of usage, it should be noted in the documents. For example, how can the users know this will fail? And how large is the one-time sending length limit?