Hi
given the Boost thread example here
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(in t secs) : m_secs(secs) { }
void operator()()
{
boost::xtime xt;
boost::xtime_ge t(&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;
}
}
}
Comment