Skip to content

Fixed 2 issues: obj deletion order and a gcc compiler warning. - #3

Open
animulay wants to merge 1 commit into
jsnell:masterfrom
animulay:fix-del-order
Open

Fixed 2 issues: obj deletion order and a gcc compiler warning.#3
animulay wants to merge 1 commit into
jsnell:masterfrom
animulay:fix-del-order

Conversation

@animulay

Copy link
Copy Markdown
  1. // test_benchmark.cc Fixed the deletion order.

  2. // test_basic.cc TimerEvent timer([] () { });

    Passing the lambda expression to TimerEvent<std::function<void()>> forces the compiler to create an implicit temporary std::function.

    Initializing callback_ from that temporary still invokes std::function's copy constructor, triggering a known GCC 14 static-analysis bug (-Wmaybe-uninitialized) during template inlining.

    To fix, updated TimerEvent explicit constructor.

1. // test_benchmark.cc
   Fixed the deletion order.

2. // test_basic.cc
   TimerEvent<Callback> timer([] () { });

   Passing the lambda expression to TimerEvent<std::function<void()>>
   forces the compiler to create an implicit temporary std::function.

   Initializing callback_ from that temporary still invokes std::function's
   copy constructor, triggering a known GCC 14 static-analysis bug
   (-Wmaybe-uninitialized) during template inlining.

   To fix, updated TimerEvent explicit constructor.
@animulay

Copy link
Copy Markdown
Author

Hi,

I came across the ratas repo today. Thanks for posting the hierarchical timer wheel implementation.

The README clearly mentions that it's "C++11 implementation".

However, when I tried to build it locally on my dev setup (Ubuntu 24.04 with gcc 13.3.0), the generated makefiles kept using newer version of C++ (c++20).

I have fixed 2 small issues here.

This is my first PR on GitHub!

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