本文整理汇总了C++中WorkQueue::try_pop方法的典型用法代码示例。如果您正苦于以下问题:C++ WorkQueue::try_pop方法的具体用法?C++ WorkQueue::try_pop怎么用?C++ WorkQueue::try_pop使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorkQueue
的用法示例。
在下文中一共展示了WorkQueue::try_pop方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: test_work_queue
void test_work_queue() {
WorkQueue<string> q;
string t = "hello";
q.push(t);
string s;
if(q.try_pop(s, 500)){
cout << "got " << s << " from queue" << endl;
}
bool ok = q.try_pop(s,500);
if(ok) {
cout << "failed, should have timed out" << endl;
}
else{
cout << "passed, timed out as expected" << endl;
}
}
示例2: test_usb
void test_usb() {
cout << "test usb" << endl;
Usb usb;
usb.write_on_connect("\ntd+\n");
WorkQueue<string> q;
usb.add_line_listener(&q);
cout << "about to run usb " << endl;
usb.run();
string s;
int i = 0;
auto t_start = high_resolution_clock::now();
usb.write_line("td+");
usb.write_line("td+");
cout << "entering loop for usb" << endl;
while(q.try_pop(s, 15000)) {
auto d = high_resolution_clock::now()-t_start;
duration<double> secs = duration_cast<duration<double>>(d);
cout << secs.count() << "got item " << s << endl;
cout << flush;
i++;
}
usb.stop();
cout << "timed out waiting for data" << endl;
}