コード例 #1
0
ファイル: main.cpp プロジェクト: CCJY/coliru
 concurrent(Args&&... args)
 : _worker(std::forward<Args>(args)...)
 , _done(false)
 , _thd([ = ]{concurrent_helper::Callback call;
    while (!_done) {  _q.wait_and_pop(call);  call();
    }}) {
 }
コード例 #2
0
ファイル: main.cpp プロジェクト: CCJY/coliru
 void run() const {
    concurrent_helper::Callback call;
    while (!_done) { 
       _q.wait_and_pop(call);
       call();
    }
 }
コード例 #3
0
ファイル: concurrent.hpp プロジェクト: KjellKod/concurrent
   /**
    * Moves in a unique_ptr<T> to be the background object. Starts up the worker thread
    * @param worker to act as the background object
    */
   concurrent(std::unique_ptr<T> worker)
      : _worker(std::move(worker))
      , _done(false)
      , _thd([ = ] {
      concurrent_helper::Callback call;
      while (_worker && !_done) {

         _q.wait_and_pop(call);
         call();
      }
   }) {
   }