Mercurial > hg > index.cgi
comparison src/lwwire.c @ 13:7702bb8a8216
Add transactional delay in lwwire_write()
This value could be smaller, but some laggy usb uarts work better at
50us.
author | Brett Gordon |
---|---|
date | Tue, 22 Nov 2016 17:27:59 -0500 |
parents | 38184ef1296d |
children |
comparison
equal
deleted
inserted
replaced
12:f8226a33698d | 13:7702bb8a8216 |
---|---|
564 { | 564 { |
565 int towrite = len; | 565 int towrite = len; |
566 int rv; | 566 int rv; |
567 fd_set fdset; | 567 fd_set fdset; |
568 struct timeval timeout; | 568 struct timeval timeout; |
569 | 569 struct timespec sltime; |
570 struct timespec rtime; | |
571 | |
572 | |
573 // Sleep for 50us to client has time to start | |
574 // listening | |
575 sltime.tv_sec = 0; | |
576 sltime.tv_nsec = 50000; | |
577 while (nanosleep(&sltime, &rtime) < 0) | |
578 { | |
579 // anything other than EINTR indicates something seriously messed up | |
580 if (errno != EINTR) | |
581 return -1; | |
582 sltime = rtime; | |
583 } | |
584 | |
585 | |
570 while (towrite > 0) | 586 while (towrite > 0) |
571 { | 587 { |
572 rv = write(1, buf, towrite); | 588 rv = write(1, buf, towrite); |
573 if (rv == towrite) | 589 if (rv == towrite) |
574 break; | 590 break; |