@@ -128,14 +128,14 @@ class ClientContext
128
128
if (err != ERR_OK) {
129
129
return 0 ;
130
130
}
131
- _connect_pending = 1 ;
131
+ _delaying = true ;
132
132
_op_start_time = millis ();
133
133
// Following delay will be interrupted by connect callback
134
- for (decltype (_timeout_ms) i = 0 ; _connect_pending && i < _timeout_ms; i++) {
134
+ for (decltype (_timeout_ms) i = 0 ; _delaying && i < _timeout_ms; i++) {
135
135
// Give scheduled functions a chance to run (e.g. Ethernet uses recurrent)
136
136
delay (1 );
137
- }
138
- _connect_pending = 0 ;
137
+ }
138
+ _delaying = false ;
139
139
if (!_pcb) {
140
140
DEBUGV (" :cabrt\r\n " );
141
141
return 0 ;
@@ -432,15 +432,16 @@ class ClientContext
432
432
433
433
void _notify_error ()
434
434
{
435
- if (_connect_pending || _send_waiting) {
436
- esp_schedule ();
435
+ if (_delaying) {
436
+ _delaying = false ;
437
+ esp_schedule (); // break current delay()
437
438
}
438
439
}
439
440
440
441
size_t _write_from_source (DataSource* ds)
441
442
{
442
443
assert (_datasource == nullptr );
443
- assert (!_send_waiting );
444
+ assert (!_delaying );
444
445
_datasource = ds;
445
446
_written = 0 ;
446
447
_op_start_time = millis ();
@@ -458,14 +459,14 @@ class ClientContext
458
459
break ;
459
460
}
460
461
461
- _send_waiting = true ;
462
+ _delaying = true ;
462
463
// Following delay will be interrupted by on next received ack
463
- for (decltype (_timeout_ms) i = 0 ; _send_waiting && i < _timeout_ms; i++) {
464
+ for (decltype (_timeout_ms) i = 0 ; _delaying && i < _timeout_ms; i++) {
464
465
// Give scheduled functions a chance to run (e.g. Ethernet uses recurrent)
465
466
delay (1 );
466
467
}
468
+ _delaying = false ;
467
469
} while (true );
468
- _send_waiting = false ;
469
470
470
471
if (_sync)
471
472
wait_until_sent ();
@@ -532,9 +533,9 @@ class ClientContext
532
533
533
534
void _write_some_from_cb ()
534
535
{
535
- if (_send_waiting ) {
536
- _send_waiting = false ;
537
- esp_schedule ();
536
+ if (_delaying ) {
537
+ _delaying = false ;
538
+ esp_schedule (); // break current delay()
538
539
}
539
540
}
540
541
@@ -608,9 +609,9 @@ class ClientContext
608
609
(void ) err;
609
610
(void ) pcb;
610
611
assert (pcb == _pcb);
611
- assert (_connect_pending );
612
- _connect_pending = 0 ;
613
- esp_schedule ();
612
+ assert (_delaying );
613
+ _delaying = false ;
614
+ esp_schedule (); // break current delay()
614
615
return ERR_OK;
615
616
}
616
617
@@ -658,8 +659,7 @@ class ClientContext
658
659
size_t _written = 0 ;
659
660
uint32_t _timeout_ms = 5000 ;
660
661
uint32_t _op_start_time = 0 ;
661
- bool _send_waiting = false ;
662
- uint8_t _connect_pending = 0 ;
662
+ bool _delaying = false ;
663
663
664
664
int8_t _refcnt;
665
665
ClientContext* _next;
0 commit comments