mirror of
https://github.com/esphome/esphome.git
synced 2026-02-08 00:31:58 +00:00
[socket] Call lwip_read/lwip_write directly on ESP32 to reduce network I/O latency (#13179)
This commit is contained in:
@@ -79,7 +79,13 @@ class BSDSocketImpl final : public Socket {
|
||||
return ::setsockopt(this->fd_, level, optname, optval, optlen);
|
||||
}
|
||||
int listen(int backlog) override { return ::listen(this->fd_, backlog); }
|
||||
ssize_t read(void *buf, size_t len) override { return ::read(this->fd_, buf, len); }
|
||||
ssize_t read(void *buf, size_t len) override {
|
||||
#ifdef USE_ESP32
|
||||
return ::lwip_read(this->fd_, buf, len);
|
||||
#else
|
||||
return ::read(this->fd_, buf, len);
|
||||
#endif
|
||||
}
|
||||
ssize_t recvfrom(void *buf, size_t len, sockaddr *addr, socklen_t *addr_len) override {
|
||||
#if defined(USE_ESP32) || defined(USE_HOST)
|
||||
return ::recvfrom(this->fd_, buf, len, 0, addr, addr_len);
|
||||
@@ -94,7 +100,13 @@ class BSDSocketImpl final : public Socket {
|
||||
return ::readv(this->fd_, iov, iovcnt);
|
||||
#endif
|
||||
}
|
||||
ssize_t write(const void *buf, size_t len) override { return ::write(this->fd_, buf, len); }
|
||||
ssize_t write(const void *buf, size_t len) override {
|
||||
#ifdef USE_ESP32
|
||||
return ::lwip_write(this->fd_, buf, len);
|
||||
#else
|
||||
return ::write(this->fd_, buf, len);
|
||||
#endif
|
||||
}
|
||||
ssize_t send(void *buf, size_t len, int flags) { return ::send(this->fd_, buf, len, flags); }
|
||||
ssize_t writev(const struct iovec *iov, int iovcnt) override {
|
||||
#if defined(USE_ESP32)
|
||||
|
||||
Reference in New Issue
Block a user