Skip to content

Fix uninitialized atomic_bool in LogWriter causing spurious logfile reopen - #819

Open
MarkRose wants to merge 1 commit into
sm0svx:masterfrom
MarkRose:fix-logwriter-uninit-atomic
Open

Fix uninitialized atomic_bool in LogWriter causing spurious logfile reopen#819
MarkRose wants to merge 1 commit into
sm0svx:masterfrom
MarkRose:fix-logwriter-uninit-atomic

Conversation

@MarkRose

Copy link
Copy Markdown
Contributor
  • LogWriter::m_reopen_log (src/misc/LogWriter.h) was a std::atomic_bool
    with no in-class initializer and was never set in the constructor. On
    C++17 (which this project targets), a default-constructed atomic_bool
    is left with an indeterminate value rather than being value-initialized
    (that behavior only arrived in C++20). The writer thread reads this flag
    before the first call to reopenLogfile(), so on startup it could read
    an indeterminate garbage value and spuriously reopen the logfile on the
    very first log line. Fixed by giving m_reopen_log an explicit {false}
    initializer.

Co-Authored-By: Claude Opus 4.8 [email protected]

…eopen

- LogWriter::m_reopen_log (src/misc/LogWriter.h) was a std::atomic_bool
  with no in-class initializer and was never set in the constructor. On
  C++17 (which this project targets), a default-constructed atomic_bool
  is left with an indeterminate value rather than being value-initialized
  (that behavior only arrived in C++20). The writer thread reads this flag
  before the first call to reopenLogfile(), so on startup it could read
  an indeterminate garbage value and spuriously reopen the logfile on the
  very first log line. Fixed by giving m_reopen_log an explicit `{false}`
  initializer.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
@MarkRose MarkRose closed this Jul 12, 2026
@MarkRose MarkRose reopened this Jul 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant