mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-04 18:03:20 +03:00
Bugfix for stuck in write method of WiFiClient and WiFiClientSecure until the remote peer closed connection (#6104)
* Bugfix - write method of WiFiClient and WiFiClientSecure can stuck forever * Adjustment of uint8_t to bool to have it clear flag
This commit is contained in:
parent
2dff28abc7
commit
25c95ac185
@ -437,7 +437,7 @@ protected:
|
||||
size_t _write_from_source(DataSource* ds)
|
||||
{
|
||||
assert(_datasource == nullptr);
|
||||
assert(_send_waiting == 0);
|
||||
assert(!_send_waiting);
|
||||
_datasource = ds;
|
||||
_written = 0;
|
||||
_op_start_time = millis();
|
||||
@ -455,10 +455,10 @@ protected:
|
||||
break;
|
||||
}
|
||||
|
||||
++_send_waiting;
|
||||
_send_waiting = true;
|
||||
esp_yield();
|
||||
} while(true);
|
||||
_send_waiting = 0;
|
||||
_send_waiting = false;
|
||||
|
||||
if (_sync)
|
||||
wait_until_sent();
|
||||
@ -525,8 +525,8 @@ protected:
|
||||
|
||||
void _write_some_from_cb()
|
||||
{
|
||||
if (_send_waiting == 1) {
|
||||
_send_waiting--;
|
||||
if (_send_waiting) {
|
||||
_send_waiting = false;
|
||||
esp_schedule();
|
||||
}
|
||||
}
|
||||
@ -650,7 +650,7 @@ private:
|
||||
size_t _written = 0;
|
||||
uint32_t _timeout_ms = 5000;
|
||||
uint32_t _op_start_time = 0;
|
||||
uint8_t _send_waiting = 0;
|
||||
bool _send_waiting = false;
|
||||
uint8_t _connect_pending = 0;
|
||||
|
||||
int8_t _refcnt;
|
||||
|
Loading…
x
Reference in New Issue
Block a user