G
Gary Wessle
Hi
given the Boost thread example here
http://www-eleves-isia.cma.fr/documentation/BoostDoc/boost_1_29_0/libs/thread/example/thread.cpp
the code below attempts to run the example
thread while giving the user a prompt for data input.
I am failing to get the prompt while the thread is running, what am I
doing wrong?
thanks
****************************************************************
#include <boost/thread/thread.hpp>
#include <boost/thread/xtime.hpp>
#include <iostream>
using namespace std;
struct thread_alarm
{
thread_alarm(int secs) : m_secs(secs) { }
void operator()()
{
boost::xtime xt;
boost::xtime_get(&xt, boost::TIME_UTC);
xt.sec += m_secs;
boost::thread::sleep(xt);
std::cout << "alarm sounded..." << std::endl;
}
int m_secs;
};
int main(){
int secs = 5;
std::cout << "setting alarm for 5 seconds..." << std::endl;
for( ;; ) {
cout << "type a number please:> " << endl;
int opt;
cin >> opt;
switch( opt ) {
case ( 1 ): {
thread_alarm alarm(secs);
boost::thread thrd(alarm);
thrd.join();
break;
}
case (99 ): cout << "Exiting ...\n"; break;
default: cout << "you typed " << opt << endl;
}
}
}
given the Boost thread example here
http://www-eleves-isia.cma.fr/documentation/BoostDoc/boost_1_29_0/libs/thread/example/thread.cpp
the code below attempts to run the example
thread while giving the user a prompt for data input.
I am failing to get the prompt while the thread is running, what am I
doing wrong?
thanks
****************************************************************
#include <boost/thread/thread.hpp>
#include <boost/thread/xtime.hpp>
#include <iostream>
using namespace std;
struct thread_alarm
{
thread_alarm(int secs) : m_secs(secs) { }
void operator()()
{
boost::xtime xt;
boost::xtime_get(&xt, boost::TIME_UTC);
xt.sec += m_secs;
boost::thread::sleep(xt);
std::cout << "alarm sounded..." << std::endl;
}
int m_secs;
};
int main(){
int secs = 5;
std::cout << "setting alarm for 5 seconds..." << std::endl;
for( ;; ) {
cout << "type a number please:> " << endl;
int opt;
cin >> opt;
switch( opt ) {
case ( 1 ): {
thread_alarm alarm(secs);
boost::thread thrd(alarm);
thrd.join();
break;
}
case (99 ): cout << "Exiting ...\n"; break;
default: cout << "you typed " << opt << endl;
}
}
}