Skip to content

Conversation

@PazerOP
Copy link
Owner

@PazerOP PazerOP commented Jan 11, 2026

No description provided.

mhaynie and others added 17 commits January 10, 2026 18:38
- Simplify source.inl and sink.inl to just include fd_source.hpp/fd_sink.hpp
- Move all implementations to fd_source.inl and fd_sink.inl
- Add static write_safe/read_safe helpers in io_native_handle_test.cpp
  to avoid sign-compare warnings when comparing with size_t

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove const/constexpr values from lambda capture lists since they
don't need explicit capture (compiler handles them implicitly).

Fixes -Wunused-lambda-capture warnings in Clang.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
string_view can be compared directly, no conversion needed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove MSVC version guard from fallback source_location::current()
- MH_SOURCE_LOCATION_AUTO now always has a default value
- Add missing string_insertion.hpp include in charconv test

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove StringMaker<std::string_view> from text_memstream_test.cpp
- Remove StringMaker<std::byte> from data_bits_test.cpp
- Catch2 v3 provides these definitions already
- Add MH_COMPILE_LIBRARY_INLINE to thread_local static definition

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update Catch2 from 3.8.0 to 3.12.0
- Enable CATCH_CONFIG_CPP17_BYTE and CATCH_CONFIG_CPP17_STRING_VIEW
- Set Catch2 to C++20 standard
- Remove duplicate StringMaker definitions that conflict with Catch2
- Simplify source_location macros (always use ::current())
- Add 3 minute timeout to test runner
- Remove clean recipe from justfile

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
CURL is required but wasn't being installed via apt.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
vcpkg was not being used - CURL is the only external dependency
and can be installed directly via apt.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Increase epsilon in lerp_clamped test (1e-6 -> 1e-5) for floating point precision
- Fix deadlock in process_manager: resume coroutines outside mutex lock
  to prevent pthread priority assertion failure

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix race condition in try_pop_task: hold lock for entire operation
- Fix lost tasks: re-queue extra FD tasks instead of discarding them
- Require unique_lock parameter to enforce locking at compile time
- Add ASan, TSan, and UBSan CI jobs to catch threading/memory issues

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
TSan detected data races:
- thread_pool::m_IsShuttingDown was accessed without synchronization
- coroutine_task_test value variable was modified on thread pool and
  read on main thread without synchronization

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…erator

Prevents undefined behavior when streaming a default-constructed
source_location with null pointers.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The wait() function was returning as soon as the value/exception was set,
but the worker thread might still be executing between set_state() and
final_suspend(). This caused a data race when the main thread destroyed
the task while the worker was still using the coroutine frame.

Now wait() waits until both is_ready() AND final_suspend has run,
ensuring the coroutine has fully completed before returning.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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.

2 participants