diff --git a/libraries/DataFlash/DataFlash_File.cpp b/libraries/DataFlash/DataFlash_File.cpp index 9125224759..dbfd2739a9 100644 --- a/libraries/DataFlash/DataFlash_File.cpp +++ b/libraries/DataFlash/DataFlash_File.cpp @@ -602,7 +602,9 @@ uint16_t DataFlash_File::find_last_log() if (fname == nullptr) { return ret; } + hal.scheduler->expect_delay_ms(3000); int fd = open(fname, O_RDONLY|O_CLOEXEC); + hal.scheduler->expect_delay_ms(0); free(fname); if (fd != -1) { char buf[10]; @@ -736,7 +738,9 @@ int16_t DataFlash_File::get_log_data(const uint16_t list_entry, const uint16_t p return -1; } stop_logging(); + hal.scheduler->expect_delay_ms(3000); _read_fd = ::open(fname, O_RDONLY|O_CLOEXEC); + hal.scheduler->expect_delay_ms(0); if (_read_fd == -1) { _open_error = true; int saved_errno = errno; @@ -912,12 +916,14 @@ uint16_t DataFlash_File::start_new_log(void) write_fd_semaphore->give(); return 0xFFFF; } + hal.scheduler->expect_delay_ms(3000); #if HAL_OS_POSIX_IO _write_fd = ::open(_write_filename, O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666); #else //TODO add support for mode flags _write_fd = ::open(_write_filename, O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC); #endif + hal.scheduler->expect_delay_ms(0); _cached_oldest_log = 0; if (_write_fd == -1) { @@ -941,11 +947,13 @@ uint16_t DataFlash_File::start_new_log(void) // we avoid fopen()/fprintf() here as it is not available on as many // systems as open/write + hal.scheduler->expect_delay_ms(3000); #if HAL_OS_POSIX_IO int fd = open(fname, O_WRONLY|O_CREAT|O_CLOEXEC, 0644); #else int fd = open(fname, O_WRONLY|O_CREAT|O_CLOEXEC); #endif + hal.scheduler->expect_delay_ms(0); free(fname); if (fd == -1) { _open_error = true;