本文整理汇总了C++中boost::promise类的典型用法代码示例。如果您正苦于以下问题:C++ promise类的具体用法?C++ promise怎么用?C++ promise使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了promise类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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
示例16: func4
void func4(boost::promise<int&> p)
{
boost::this_thread::sleep_for(boost::chrono::milliseconds(500));
p.set_exception(boost::make_exception_ptr(3.5));
}
开发者ID:manctl,项目名称:boost,代码行数:5,代码来源:get_pass.cpp
示例17: func5
void func5(boost::promise<void> p)
{
boost::this_thread::sleep_for(boost::chrono::milliseconds(500));
p.set_value();
}
开发者ID:manctl,项目名称:boost,代码行数:5,代码来源:get_pass.cpp
示例18: func3
void func3(boost::promise<int&> p)
{
boost::this_thread::sleep_for(boost::chrono::milliseconds(500));
j = 5;
p.set_value(j);
}
开发者ID:manctl,项目名称:boost,代码行数:6,代码来源:get_pass.cpp
示例19: func5
void func5(boost::promise<void> p)
{
boost::this_thread::sleep_for(ms(500));
p.set_value();
}
开发者ID:GoMani,项目名称:thread,代码行数:5,代码来源:wait_pass.cpp
示例20: func3
void func3(boost::promise<int&> p)
{
boost::this_thread::sleep_for(ms(500));
j = 5;
p.set_value(j);
}
开发者ID:GoMani,项目名称:thread,代码行数:6,代码来源:wait_pass.cpp
注:本文中的boost::promise类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论