| |||
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
On Jul 11, 2006, at 12:11 PM, Michael Smith wrote:
On Jul 11, 2006, at 12:04 PM, email@hidden wrote:
Read(2) will block if there is no data so there's no need to sleep. Using select(2) is one way to go about it but with only one file descriptor/socket, it seems pointless to me.
Select(2) makes timeout handling (mandatory for disconnectable
devices such as those attached by USB or serial interfaces) much simpler.
Shouldn't that return -1 or 0?
I note in your example that you don't test for ret == 0, which in the case
of a blocking read means that if the fd is closed for some reason (e.g. the
device is destroyed due to removal) you will spin forever.
IMO, select with a non-blocking fd is a much cleaner way to implement
this; it also has the advantage of making additions to the code over
time much simpler, as it's an architectural stepping stone to a state-machine.
-- Steve Checkoway
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/email@hidden This email sent to email@hidden
| Home | Archives | FAQ | Terms/Conditions | Contact | RSS | Lists | About |
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE
Contact Apple | Terms of Use | Privacy Policy
Copyright © 2007 Apple Inc. All rights reserved.