mirror of
git://sigrok.org/libserialport
synced 2023-08-10 21:13:24 +03:00
posix: Move FD_ZERO() and FD_SET() calls outside loops.
This commit is contained in:
parent
27911925c1
commit
772c586133
10
serialport.c
10
serialport.c
@ -787,11 +787,12 @@ SP_API enum sp_return sp_blocking_write(struct sp_port *port, const void *buf,
|
|||||||
timeradd(&start, &delta, &end);
|
timeradd(&start, &delta, &end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FD_ZERO(&fds);
|
||||||
|
FD_SET(port->fd, &fds);
|
||||||
|
|
||||||
/* Loop until we have written the requested number of bytes. */
|
/* Loop until we have written the requested number of bytes. */
|
||||||
while (bytes_written < count) {
|
while (bytes_written < count) {
|
||||||
/* Wait until space is available. */
|
/* Wait until space is available. */
|
||||||
FD_ZERO(&fds);
|
|
||||||
FD_SET(port->fd, &fds);
|
|
||||||
if (timeout_ms) {
|
if (timeout_ms) {
|
||||||
gettimeofday(&now, NULL);
|
gettimeofday(&now, NULL);
|
||||||
if (timercmp(&now, &end, >)) {
|
if (timercmp(&now, &end, >)) {
|
||||||
@ -1002,11 +1003,12 @@ SP_API enum sp_return sp_blocking_read(struct sp_port *port, void *buf,
|
|||||||
timeradd(&start, &delta, &end);
|
timeradd(&start, &delta, &end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FD_ZERO(&fds);
|
||||||
|
FD_SET(port->fd, &fds);
|
||||||
|
|
||||||
/* Loop until we have the requested number of bytes. */
|
/* Loop until we have the requested number of bytes. */
|
||||||
while (bytes_read < count) {
|
while (bytes_read < count) {
|
||||||
/* Wait until data is available. */
|
/* Wait until data is available. */
|
||||||
FD_ZERO(&fds);
|
|
||||||
FD_SET(port->fd, &fds);
|
|
||||||
if (timeout_ms) {
|
if (timeout_ms) {
|
||||||
gettimeofday(&now, NULL);
|
gettimeofday(&now, NULL);
|
||||||
if (timercmp(&now, &end, >))
|
if (timercmp(&now, &end, >))
|
||||||
|
Loading…
Reference in New Issue
Block a user