Skip to content
Tags give the ability to mark specific points in history as being important
  • 01.05.02
    New PATCH release 01.05.02
    
    Changes since 01.05.01:
    
    - changes to build environment
  • 01.05.01
    fe1893c9 · increase patch level ·
    New PATCH release 01.05.01
    
    Changes since 01.05.00:
    
    - chore: build environment
  • 01.05.00
    New MINOR release 01.05.00
    
    Changes since 01.04.02:
    
    - fix: compiler warnings in g++ (#33)
        g++ 11.3.0 (default compiler on Ubuntu 22.04) and higher are complaining about variable shadowing in lambdas.
    - fix: race condition (#32)
        When creating the notification queue in when_any() while the sending
        thread is already active, the when_any_index was written and read concurrently,
        but neither atomic nor protected by a mutex or memory barrier.
    - use lib install dir defined by GNUInstallDirs
        this should fix library search problems on Tumbleweed
    - modernize cmake (#28)
        provide exported target
        remove explicit compatibility layer
        do not declare GccAtomic required if it isn't
    - fix asan tests (#26)
        Use set_default_flags.cmake in CMakeLists.txt
          This also brings the build types tsan and asan.
        Fixed direct memory leak reported in testAsyncRead by renovating shared_state_ptr::free() and creating
          shared_state_base::free() in future_queue.hpp. Functions  affected by this include
          future_queue_base::setNotificationQueue(), and when_any().
  • 01.04.02
    New PATCH release 01.04.02
    
    Changes since 01.04.01:
    - Initialize std::atomic<when_any_notification_info> (fixes #16). (#17)
        Before C++ 20, the default constructor of std::atomic does not
        initialize the underlying object. This can lead to situations where
        load() returns an uninitialized object, thus resulting in undefined
        behavior.
    - Only link with libatomic if it is found (fixes #15).
        libatomic does not exist on all systems. For example, modern versions of
        macOS use Clang / LLVM, where atomics are provided by compiler-rt (the
        default runtime) and thus no extra library needs to be linked.
  • 01.04.01
    e3884943 · increase patch level (#9) ·
    New PATCH release 01.04.01
    
    Changes since 01.04.00:
    
    - future_queue: remove const variant of front() (#8)
  • 01.04.00
    New MINOR release 01.04.00
    
    Changes since 01.03.03:
    - Allow peeking for exceptions in void future_queues (#7)
      This is needed for the DeviceAccess ReadAnyGroup, to simplify the implementation.
  • 01.03.03
    7ef1011f · increase patch level ·
    New PATCH release 01.03.03
    
    Changes since 01.03.02:
    
    - avoid some linter warnings
  • 01.03.02
    1902f2dc · increase patch level ·
    New PATCH release 01.03.02
    
    Changes since 01.03.01:
    
    Updates to build environment (added support for pkgconfig)
  • 01.03.01
    New PATCH release 01.03.01
    
    Changes since 01.03.00:
    
    - fix two data races in when_any() with concurrent push()
    - add missing atomic library which is now required for all users of this library
  • 01.03.00
    New MINOR release 01.03.00
    
    Changes since 01.02.01:
    
    - add "finally" from GSL
    - fix not handling exceptions in continuations properly
    - add some reference documentation for then()
  • 01.02.01
    84c6d486 · increased patch level ·
    New PATCH release 01.02.01
    
    Changes since 01.02.00:
    
    Minor changes to the build environment which also affects how Debian packages are built
  • 01.02.00
    bded08de · increased minor version ·
    New MINOR release 01.02.00
    
    Changes since 01.01.00:
    
    - add comparison operators for future queues
    - some improvements to the build environment
  • 01.01.00
    6fd9fe10 · increased minor version ·
    New MINOR release 01.01.00
    
    Changes since 01.00.00:
    
    This is mostly a bug fix release.
    
    - fixed copying / assigning default-constructed future_queues
    - implement proper shutdown procedure for internal threads of async continuations and when_all()
    - fixed running wait_any() on continued queues which already contain data
    - add push_overwrite_exception() function
    - make sure the exception is set to nullptr if writing a normal value
    - make push_overwrite() work in multi-producer environments
    - fixed when_any() in combination with continuations
    - disable some versions of push/pop for non-copyable types, to prevent compiler failures
    - added front() function which is non-const and returns a non-const reference to the front element
    - allow continuations to swap buffers with the queue
    - fixed continuations with void data types
    - fixed a memory leak
    
    - added missing inline keywords to the non-template header-only implementations
    - fixed install location of header files
    - fixed/completed tests
    - improved documentation
  • 01.00.00
    New MAJOR release 01.00.00
    
    Initial release