@@ -335,14 +335,8 @@ void ATHandler::rewind_buffer()
335
335
}
336
336
}
337
337
338
- bool ATHandler::fill_buffer (bool wait_for_timeout)
338
+ int ATHandler::poll_timeout (bool wait_for_timeout)
339
339
{
340
- tr_debug (" %s" , __func__);
341
- // Reset buffer when full
342
- if (sizeof (_recv_buff) == _recv_len) {
343
- reset_buffer ();
344
- }
345
-
346
340
int timeout;
347
341
if (wait_for_timeout) {
348
342
uint64_t now = rtos::Kernel::get_ms_count ();
@@ -356,11 +350,22 @@ bool ATHandler::fill_buffer(bool wait_for_timeout)
356
350
} else {
357
351
timeout = 0 ;
358
352
}
353
+ return timeout;
354
+ }
355
+
356
+ bool ATHandler::fill_buffer (bool wait_for_timeout)
357
+ {
358
+ tr_debug (" %s" , __func__);
359
+ // Reset buffer when full
360
+ if (sizeof (_recv_buff) == _recv_len) {
361
+ reset_buffer ();
362
+ }
359
363
360
364
pollfh fhs;
361
365
fhs.fh = _fileHandle;
362
366
fhs.events = POLLIN;
363
- int count = poll (&fhs, 1 , timeout);
367
+ int timeout = 0 ;
368
+ int count = poll (&fhs, 1 , poll_timeout (wait_for_timeout));
364
369
if (count > 0 && (fhs.revents & POLLIN)) {
365
370
ssize_t len = _fileHandle->read (_recv_buff + _recv_len, sizeof (_recv_buff) - _recv_len);
366
371
if (len > 0 ) {
@@ -1097,12 +1102,7 @@ size_t ATHandler::write(const void *data, size_t len)
1097
1102
fhs.events = POLLOUT;
1098
1103
size_t write_len = 0 ;
1099
1104
for (; write_len < len; ) {
1100
- int timeout = (_start_time + _at_timeout) - rtos::Kernel::get_ms_count ();
1101
- if (timeout < 0 ) {
1102
- set_error (NSAPI_ERROR_DEVICE_ERROR);
1103
- return 0 ;
1104
- }
1105
- int count = poll (&fhs, 1 , timeout);
1105
+ int count = poll (&fhs, 1 , poll_timeout ());
1106
1106
if (count <= 0 || !(fhs.revents & POLLOUT)) {
1107
1107
set_error (NSAPI_ERROR_DEVICE_ERROR);
1108
1108
return 0 ;
0 commit comments