Skip to content
Snippets Groups Projects
  1. Apr 12, 2021
  2. Apr 11, 2021
    • Florian Schmaus's avatar
      Merge branch 'fix-io-stats' into 'master' · fbe97465
      Florian Schmaus authored
      Fix race condition in io::Stats
      
      See merge request !160
      fbe97465
    • Florian Schmaus's avatar
      Fix race condition in io::Stats · 8d252617
      Florian Schmaus authored
      The workerStats std::vector was modified concurrently without being
      synchronized. The Stats are constructed together with IoContext and
      the worker IoContexts are constructed concurrently at the beginning of
      the worker loop. And in the Stats constructor the workerStats
      std::vector was modified by adding the Stats instance that is
      currently being constructed to it.
      
      Turns out, we don't need the workerStats data structure at all. We
      simply provide the global and worker IoContexts to
      io::Stats::printStats(). This results IMHO in a cleaner design of
      printStats() since there is no longer a data structure called
      workerStats, that in fact, not only holds the worker's stats. And
      while we at it, we rename io::Stats::printWorkerStats() to
      io::Stats::printsStats(), since it does, in fact, not only print the
      worker stats, but more or less all related worker stats.
      8d252617
    • Florian Schmaus's avatar
      [gitignore] Add .clangd/ · f43fc14e
      Florian Schmaus authored
      f43fc14e
  3. Apr 08, 2021
  4. Apr 06, 2021
  5. Apr 03, 2021
  6. Apr 02, 2021
  7. Apr 01, 2021
  8. Mar 29, 2021
    • Florian Schmaus's avatar
      Merge branch 'cleanup-debug5' into 'master' · 820575a0
      Florian Schmaus authored
      [Debug.hpp] wrap actual logging in log-level constexpr
      
      See merge request !150
      820575a0
    • Florian Fischer's avatar
      [Debug.hpp] wrap actual logging in log-level constexpr · 3626bdf4
      Florian Fischer authored
      According to godbolt.org
      
      do { if constexpr(false) { break; } int foo = 42; foo++; } while(false);
      
      does result in code generation for gcc 10.2 and clang 11.0.1 as opposed to
      
      do { if constexpr(false) { int foo = 42; foo++; }} while(false);
      
      which does not result in code generation for both gcc and clang.
      
      And this simple change did indeed significantly increases our echo
      benchmark performance. We were probably creating a lot of std::stringstream
      objects without ever using them.
      3626bdf4
  9. Mar 24, 2021
  10. Mar 23, 2021
Loading