fix: prevent Serial.printf from blocking when USB disconnected
All checks were successful
CI / build (push) Successful in 2m23s
All checks were successful
CI / build (push) Successful in 2m23s
On ESP32-C3 with USB CDC, Serial.printf() blocks indefinitely when USB is not connected. This caused device freezes when booted without USB. Solution: Call Serial.setTxTimeoutMs(0) after Serial.begin() to make all Serial output non-blocking. Also added if (Serial) guards to high-traffic logging paths in EpubReaderActivity as belt-and-suspenders protection. Includes documentation of the debugging process and Serial call inventory. Also applies clang-format to fix pre-existing formatting issues.
This commit is contained in:
@@ -17,9 +17,9 @@ class HomeActivity final : public Activity {
|
||||
bool hasCoverImage = false;
|
||||
|
||||
// Static cover buffer - persists across activity changes to avoid reloading from SD
|
||||
static bool coverRendered; // Track if cover has been rendered once
|
||||
static bool coverBufferStored; // Track if cover buffer is stored
|
||||
static uint8_t* coverBuffer; // HomeActivity's own buffer for cover image
|
||||
static bool coverRendered; // Track if cover has been rendered once
|
||||
static bool coverBufferStored; // Track if cover buffer is stored
|
||||
static uint8_t* coverBuffer; // HomeActivity's own buffer for cover image
|
||||
static std::string cachedCoverPath; // Path of the cached cover (to detect book changes)
|
||||
|
||||
std::string lastBookTitle;
|
||||
@@ -43,15 +43,14 @@ class HomeActivity final : public Activity {
|
||||
public:
|
||||
// Free cover buffer from external activities (e.g., when entering reader to reclaim memory)
|
||||
static void freeCoverBufferIfAllocated();
|
||||
|
||||
|
||||
// Preload cover buffer from external activities (e.g., MyLibraryActivity) for instant Home screen
|
||||
// Returns true if cover was successfully preloaded or already cached
|
||||
static bool preloadCoverBuffer();
|
||||
explicit HomeActivity(GfxRenderer& renderer, MappedInputManager& mappedInput,
|
||||
const std::function<void()>& onContinueReading, const std::function<void()>& onListsOpen,
|
||||
const std::function<void()>& onMyLibraryOpen, const std::function<void()>& onSettingsOpen,
|
||||
const std::function<void()>& onFileTransferOpen,
|
||||
const std::function<void()>& onOpdsBrowserOpen)
|
||||
const std::function<void()>& onFileTransferOpen, const std::function<void()>& onOpdsBrowserOpen)
|
||||
: Activity("Home", renderer, mappedInput),
|
||||
onContinueReading(onContinueReading),
|
||||
onListsOpen(onListsOpen),
|
||||
|
||||
Reference in New Issue
Block a user