ALT Linux Bugzilla
– Attachment 9202 Details for
Bug 39698
Проблемы с компилятором.
New bug
|
Search
|
[?]
|
Help
Register
|
Log In
[x]
|
Forgot Password
Login:
[x]
|
EN
|
RU
пример проверочного кода
queue.cc (text/x-c++src), 1.37 KB, created by
markov
on 2021-02-17 10:55:12 MSK
(
hide
)
Description:
пример проверочного кода
Filename:
MIME Type:
Creator:
markov
Created:
2021-02-17 10:55:12 MSK
Size:
1.37 KB
patch
obsolete
>#include <boost/thread/thread.hpp> >#include <boost/lockfree/queue.hpp> >#include <iostream> > >#include <boost/atomic.hpp> > >boost::atomic_int producer_count(0); >boost::atomic_int consumer_count(0); > >boost::lockfree::queue<int> queue(128); > >const int iterations = 10000000; >const int producer_thread_count = 16; >const int consumer_thread_count = 16; > >void producer(void) >{ > for (int i = 0; i != iterations; ++i) { > int value = ++producer_count; > while (!queue.push(value)) > ; > } >} > >boost::atomic<bool> done (false); >void consumer(void) >{ > int value; > while (!done) { > while (queue.pop(value)) > ++consumer_count; > } > > while (queue.pop(value)) > ++consumer_count; >} > >int main(int argc, char* argv[]) >{ > using namespace std; > cout << "boost::lockfree::queue is "; > if (!queue.is_lock_free()) > cout << "not "; > cout << "lockfree" << endl; > > boost::thread_group producer_threads, consumer_threads; > > for (int i = 0; i != producer_thread_count; ++i) > producer_threads.create_thread(producer); > > for (int i = 0; i != consumer_thread_count; ++i) > consumer_threads.create_thread(consumer); > > producer_threads.join_all(); > done = true; > > consumer_threads.join_all(); > > cout << "produced " << producer_count << " objects." << endl; > cout << "consumed " << consumer_count << " objects." << endl; >} >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 39698
: 9202