Skip to content
Snippets Groups Projects
  1. Mar 08, 2021
  2. Mar 03, 2021
  3. Mar 02, 2021
  4. Mar 01, 2021
  5. Feb 26, 2021
    • Florian Schmaus's avatar
      Merge branch 'unbounded_queue_implementation' into 'master' · a1bb4f7a
      Florian Schmaus authored
      Make LockedUnboundedQueue implementation configurable
      
      See merge request i4/manycore/emper!113
      a1bb4f7a
    • Florian Fischer's avatar
      Make LockedUnboundedQueue implementation configurable · 9b949e49
      Florian Fischer authored
      Available implementations configurations through the meson option
      'locked_unbounded_queue_implementation' are:
      
      mutex - our current LockedUnboundedQueue implementation using std::mutex
      
      rwlock - An implementation with pthread_rwlock. The implementations tries
               to upgrade its rdlock and drops and acquires a wrlock on failure
      
      shared_mutex - An implementation using std::shared_mutex.
               dequeue() acquires a shared lock at first, drops it and
               acquires a unique lock
      
      boost_shared_mutex - An implementation using boost::shared_mutex.
               dequeue() acquires an upgradable lock and upgrade it
               to a unique lock if necessary
      9b949e49
    • Florian Fischer's avatar
      [meson] better propagate dependencies · 2d0b5f6b
      Florian Fischer authored
      The emper header LockedUnboundedQueue.hpp could depend on different libraries
      according to the implementation.
      
      To link those dependencies with everything including LockedUnboundedQueue.hpp
      we propagate all emper_dependencies through emper_dep.
      
      And using emper_dep as a dependency seems anyway better than essentially
      writing down emper_dep manually each time.
      
      emper_dep essentially is:
      (link_with:emper, include_directories: emper_all_include)
      2d0b5f6b
    • Florian Schmaus's avatar
      Merge branch 'batch_schedule_from_anywhere' into 'master' · b22579c0
      Florian Schmaus authored
      add a batch optimization for the global completer
      
      See merge request !110
      b22579c0
    • Florian Schmaus's avatar
      Merge branch 'flow' into 'master' · 6fd6fc4d
      Florian Schmaus authored
      Minor improvements
      
      See merge request !112
      6fd6fc4d
    • Florian Fischer's avatar
      add a batch optimization for the global completer · 17776ba2
      Florian Fischer authored
      This change introduces new scheduleFromAnywhere methods which take
      a range of Fibers to schedule.
      
      Blockable gets a new method returning the fiber used to start
      the unblocked context, which is used by Future/PartialCompletableFuture
      to provide a way of completion and returning the continuation Fiber
      to the caller so they may schedule the continuation how they want.
      
      If the meson option io_batch_anywhere_completions is set the global
      completer will collect all callback and continuation fibers before
      scheduling them at once when it is done reaping the completions.
      The idea is that taking the AnywhereQueue write lock and calling onNewWork
      must only be done once.
      
      TODO: investigate if onNewWork should be extended by an amountOfWork
      argument which determines how many worker can be awoken and have work to
      do. This should be trivially since our WorkerWakeupSemaphore implementations
      already support notify_many(), which may be implemented in terms of
      notify_all though.
      17776ba2
    • Florian Schmaus's avatar
      [IoContext] Add code comment · 4d742238
      Florian Schmaus authored
      4d742238
    • Florian Schmaus's avatar
      Add compile_commands.json symlink · 620d09b3
      Florian Schmaus authored
      620d09b3
  6. Feb 25, 2021
  7. Feb 24, 2021
  8. Feb 23, 2021
Loading