modify macro ESP32_TX_FLOW_CTRL to inline function

This commit is contained in:
liuzhifu 2016-09-09 10:20:14 +08:00 committed by Wu Jian Gang
parent a28ef1776e
commit 19c8476344

View file

@ -390,17 +390,18 @@ static void lwip_socket_drop_registered_memberships(int s);
#ifdef LWIP_ESP8266
extern size_t system_get_free_heap_size(void);
extern bool esp_wifi_tx_is_stop(void);
#define ESP32_TX_FLOW_CTRL() \
do{\
uint8_t _wait_delay = 0;\
while ((system_get_free_heap_size() < HEAP_HIGHWAT) || esp_wifi_tx_is_stop()){\
vTaskDelay(_wait_delay/portTICK_RATE_MS);\
if (_wait_delay < 64) _wait_delay *= 2;\
}\
}while(0)
inline void esp32_tx_flow_ctrl(void)
{
uint8_t _wait_delay = 0;
while ((system_get_free_heap_size() < HEAP_HIGHWAT) || esp_wifi_tx_is_stop()){
vTaskDelay(_wait_delay/portTICK_RATE_MS);
if (_wait_delay < 64) _wait_delay *= 2;
}
}
#else
#define ESP32_TX_FLOW_CTRL()
#define esp32_tx_flow_ctrl()
#endif
/** The global array of available sockets */
@ -1219,7 +1220,7 @@ lwip_send(int s, const void *data, size_t size, int flags)
#endif /* (LWIP_UDP || LWIP_RAW) */
}
ESP32_TX_FLOW_CTRL();
esp32_tx_flow_ctrl();
write_flags = NETCONN_COPY |
((flags & MSG_MORE) ? NETCONN_MORE : 0) |
@ -1402,7 +1403,7 @@ lwip_sendto(int s, const void *data, size_t size, int flags,
#endif /* LWIP_TCP */
}
ESP32_TX_FLOW_CTRL();
esp32_tx_flow_ctrl();
if ((to != NULL) && !SOCK_ADDR_TYPE_MATCH(to, sock)) {
/* sockaddr does not match socket type (IPv4/IPv6) */