6 #include <boost/thread/mutex.hpp>
7 #include <boost/thread/thread.hpp>
9 #define BOOST_AUTO_TEST_MAIN
10 #include <boost/test/auto_unit_test.hpp>
12 using namespace boost::unit_test;
14 boost::mutex io_mutex;
19 Worker(yp2::Session *session, int nr = 0)
20 : m_session(session), m_nr(nr){};
22 void operator() (void) {
23 for (int i=0; i < 100; ++i)
25 m_id = m_session->id();
32 boost::mutex::scoped_lock scoped_lock(io_mutex);
33 std::cout << "Worker " << m_nr
34 << " session.id() " << m_id << std::endl;
38 yp2::Session *m_session;
45 BOOST_AUTO_TEST_CASE( testsession2 )
52 const int num_threads = 10;
53 boost::thread_group thrds;
55 for (int i=0; i < num_threads; ++i)
57 Worker w(&session, i);
58 thrds.add_thread(new boost::thread(w));
62 BOOST_CHECK (session.id() == 1001);
65 catch (std::exception &e) {
66 std::cout << e.what() << "\n";
77 * indent-tabs-mode: nil
79 * vim: shiftwidth=4 tabstop=8 expandtab