当前位置: 首页>>代码示例>>C++>>正文


C++ boost::promise类代码示例

本文整理汇总了C++中boost::promise的典型用法代码示例。如果您正苦于以下问题:C++ promise类的具体用法?C++ promise怎么用?C++ promise使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了promise类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: ramhog_gen_pad_mt

static void ramhog_gen_pad_mt(boost::promise<bool> &done,
                              const uint8_t *input, size_t input_size,
                              uint32_t C, uint32_t padIndex,
                              uint64_t *padOut,
                              bool fForMiner, CBlockIndex *pindexForBest)
{
    if (fForMiner && pindexForBest != pindexBest)
    {
        done.set_value(error("ramhog_gen_pad_mt(): Interrupted from new best block"));
        return;
    }
    
    ramhog_gen_pad(input, input_size, C, padIndex, padOut);
    done.set_value(true);
}
开发者ID:sunny-prince,项目名称:shinycoin,代码行数:15,代码来源:ramhog_mt.cpp

示例2: accumulate

void accumulate(boost::promise<int> &p)
{
    int sum = 0;
    for (int i = 0; i < 5; ++i)
        sum += i;
    p.set_value(sum);
}
开发者ID:opensvn,项目名称:boost_learning,代码行数:7,代码来源:future.cpp

示例3: promise_task

void promise_task(boost::promise<std::string> & promise)
{
  std::cout << "promise_task" << std::endl;
//  sleep (2);
  promise.set_value("PROMISE");

}
开发者ID:CCJY,项目名称:coliru,代码行数:7,代码来源:main.cpp

示例4:

	channel_consumer()
		: consumer_index_(next_consumer_index())
		, first_frame_available_(first_frame_promise_.get_future())
		, first_frame_reported_(false)
	{
		is_running_ = true;
		current_age_ = 0;
		frame_buffer_.set_capacity(3);
	}
开发者ID:ScarlettCode,项目名称:Server,代码行数:9,代码来源:channel_producer.cpp

示例5: wait_callback

void wait_callback(boost::promise<int>& pi)
{
    boost::lock_guard<boost::mutex> lk(callback_mutex);
    ++callback_called;
    try
    {
        pi.set_value(42);
    }
    catch(...)
    {
    }
}
开发者ID:BackupTheBerlios,项目名称:airdc-svn,代码行数:12,代码来源:test_futures.cpp

示例6: main

int main()
{
  {
    //boost::promise<int&> p;
    boost::future<int&> f = p.get_future();
    //boost::thread(func, boost::move(p)).detach();
    boost::thread(func).detach();
    int r = f.get();
    BOOST_TEST(r == 4);
  }
  return boost::report_errors();
}
开发者ID:AlexMioMio,项目名称:boost,代码行数:12,代码来源:set_lvalue_at_thread_exit_pass.cpp

示例7: wrap_as_future

	virtual boost::unique_future<bool> send(const safe_ptr<read_frame>& frame) override
	{
		bool pushed = frame_buffer_.try_push(frame);

		if (pushed && !first_frame_reported_)
		{
			first_frame_promise_.set_value();
			first_frame_reported_ = true;
		}

		return caspar::wrap_as_future(is_running_.load());
	}
开发者ID:ScarlettCode,项目名称:Server,代码行数:12,代码来源:channel_producer.cpp

示例8: send

	virtual void send(const safe_ptr<basic_frame>& src_frame) override
	{
		bool pushed = frame_buffer_.try_push(src_frame);
//		frame_buffer_.push(src_frame);

		if (pushed && !first_frame_reported_) //changed to fix compilation
		//if (!first_frame_reported_)
		{
			first_frame_promise_.set_value();
			first_frame_reported_ = true;
		}
	}
开发者ID:zhouqilin,项目名称:casparLinux,代码行数:12,代码来源:layer_producer.cpp

示例9: WorkItem

 WorkItem(const Request& req,
          ExtraSendFun* send_extra,
          ExtraRecvFun* recv_extra)
     : request(req)
     , request_tag(allocate_tag())
     , request_type(vfsprotocol::RequestTraits<Request>::request_type)
     , request_desc(vfsprotocol::request_type_to_string(request_type))
     , send_extra_fun(send_extra)
     , recv_extra_fun(recv_extra)
       // clang++ (3.8.0-2ubuntu3~trusty4) complains otherwise about
       // 'promise' being used unitialized when initializing 'future'
     , promise()
     , future(promise.get_future())
 {}
开发者ID:openvstorage,项目名称:volumedriver,代码行数:14,代码来源:RemoteNode.cpp

示例10: main

int main()
{
  {
    typedef int T;
    //boost::promise<T> p;
    boost::future<T> f = p.get_future();
    //boost::thread(func, boost::move(p)).detach();
    boost::thread(func).detach();
    try
    {
      f.get();
      BOOST_TEST(false);
    }
    catch (boost::wrap<int> i)
    {
      BOOST_TEST(i.value == 3);
    }
    catch (...)
    {
      BOOST_TEST(false);
    }
  }
  {
    typedef int T;
    boost::promise<T> p2;
    boost::future<T> f = p2.get_future();
    //boost::thread(func, boost::move(p)).detach();
    p = boost::move(p2);
    boost::thread(func).detach();
    try
    {
      f.get();
      BOOST_TEST(false);
    }
    catch (boost::wrap<int> i)
    {
      BOOST_TEST(i.value == 3);
    }
    catch (...)
    {
      BOOST_TEST(false);
    }
  }
  return boost::report_errors();
}
开发者ID:BwRy,项目名称:core-android-market,代码行数:45,代码来源:set_exception_at_thread_exit_pass.cpp

示例11: func1

void func1(boost::promise<int> p)
{
  boost::this_thread::sleep_for(ms(500));
  p.set_value(3);
}
开发者ID:GoMani,项目名称:thread,代码行数:5,代码来源:wait_pass.cpp

示例12: main

int main()
{
  {
    //boost::promise<boost::interprocess::unique_ptr<int, boost::default_delete<int>> > p;
    boost::future<boost::interprocess::unique_ptr<int, boost::default_delete<int> > > f = p.get_future();
    //boost::thread(func, boost::move(p)).detach();
    boost::thread(func).detach();
    BOOST_TEST(*f.get() == 5);
  }

  return boost::report_errors();
}
开发者ID:MisterTea,项目名称:MAMEHub,代码行数:12,代码来源:set_rvalue_at_thread_exit_pass.cpp

示例13: RunCommand

 RunCommand(const mongo::BSONObj& cmd, mongo::BSONObj& ret, 
   boost::unique_future<bool>& future) : cmd(cmd), ret(ret), future(future)
 {
   future = promise.get_future();
 }
开发者ID:cm277,项目名称:ebftpd,代码行数:5,代码来源:task.hpp

示例14: func6

void func6(boost::promise<void> p)
{
    boost::this_thread::sleep_for(boost::chrono::milliseconds(500));
    p.set_exception(boost::make_exception_ptr('c'));
}
开发者ID:manctl,项目名称:boost,代码行数:5,代码来源:get_pass.cpp

示例15: Select

 Select(const std::string& container, const mongo::Query& query,
   QueryResults& results, boost::unique_future<bool>& future, int limit = 0) : 
     container(container), query(query), results(results), future(future),
     promise(), limit(limit) { future = promise.get_future(); }
开发者ID:cm277,项目名称:ebftpd,代码行数:4,代码来源:task.hpp


注:本文中的boost::promise类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。