سؤال

If you use kqueue(), should you set O_NONBLOCK on your file descriptors? In other words, does kqueue() guarantee that the next I/O operation on a ready file descriptor will not block, regardless of whether O_NONBLOCK is set?

هل كانت مفيدة؟

المحلول

If you use kqueue(), should you set O_NONBLOCK on your file descriptors?

Nope.

In other words, does kqueue() guarantee that the next I/O operation on a ready file descriptor will not block, regardless of whether O_NONBLOCK is set?

Yep.

نصائح أخرى

You do not need to. However, I generally do as a sanity check. This makes operations like read() return -1 and set errno to EWOULDBLOCK. I would much rather get an EWOULDBLOCK and know that my implementation of kqueue is buggy than have read() calls block (and therefore my program freeze) for unknown reasons.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top