Skip to content
Snippets Groups Projects
  1. Mar 03, 2021
  2. Jan 29, 2020
  3. Feb 07, 2019
  4. Dec 04, 2018
  5. Nov 06, 2018
  6. Jun 26, 2018
  7. Apr 18, 2018
  8. Mar 14, 2018
  9. Mar 13, 2018
  10. Oct 05, 2017
  11. Sep 27, 2017
  12. Sep 25, 2017
  13. Sep 19, 2017
    • Guilherme Amadio's avatar
      Implement non-blocking callback mechanism in TBufferMerger · 37427c31
      Guilherme Amadio authored
      Add methods TBufferMerger::GetQueueSize() and
      TBufferMerger::RegisterCallback() to alow user
      to control the rate at which data is pushed into
      the merging queue. In our test, we use the callback
      function to launch tasks asynchronously whenever a
      buffer is done processing.
      37427c31
  14. Sep 12, 2017
  15. May 19, 2017
    • Guilherme Amadio's avatar
      Avoid deadlock on condition variable in TBufferMerger · 3546c0aa
      Guilherme Amadio authored
      In rare occasions, the main thread (running ~TBufferMerger())
      may inject the nullptr after the writing thread has checked in the
      while loop if fQueue is empty, but before it puts itself in
      the wait queue, which causes a deadlock with the writing thread
      waiting for data, and the main thread waiting to join it. This
      commit avoids the deadlock by using only a single mutex for all
      operations on the queue.
      3546c0aa
  16. May 16, 2017
  17. May 14, 2017
    • Danilo Piparo's avatar
      [TDF] Handle more carefully implicit changes of directory · c868802f
      Danilo Piparo authored
      The usage of the TBufferMerger implied several changes of directory.
      With the usage of TDirectory::TContext the state of ROOT is not changed.
      Following the statement above, a change in behaviour is introduced. When
      a user gets a file from the TBufferMerger with the GetFile method, it is
      her responsibility to "cd" into it not to introduce an implicit change
      of directory. This is clearly documented in Doxygen.
      c868802f
  18. May 10, 2017
    • Guilherme Amadio's avatar
    • Guilherme Amadio's avatar
      Add TBufferMerger and TBufferMergerFile classes · 687fe88f
      Guilherme Amadio authored
      TBufferMerger is a class to facilitate writing data in
      parallel from multiple threads, while writing to a single
      output file. Its purpose is similar to TParallelMergingFile,
      but instead of using processes that connect to a network
      socket, TBufferMerger uses threads that each write to a
      TBufferMergerFile, which in turn push data into a queue
      managed by the TBufferMerger.
      
      These classes were originally written by Witold Pokorski and
      Philippe Canal for the GeantV project. There, they are named
      TThreadedMergingServer and TThreadedMergingFile, respectively.
      The imported code was then modified into the current version to
      be used initially by TDataFrame classes, and later by general
      ROOT users.
      687fe88f
Loading