
"Christopher Kohlhoff" wrote
Hi Andy,
--- Andy Little wrote:
Attempting to compile the synchronous timer example. I get the message xx\boost\asio\detail\socket_types.hpp "sys/ioctl.h" no such file or directory. compiler VC7.1 in Windows XP. Any thoughts?
It can only get into the #else branch that includes sys/ioctl.h if BOOST_WINDOWS is not defined. This would occur if BOOST_DISABLE_WIN32 is being defined somewhere, such as when compiling with the /Za option. If you are please try removing it.
That worked! :-) I am currently looking at the asynchromous timer tutorial example. I'm not clear where the timer thread starts. Does it start with the call to t.async_wait(print); in the code below? #include <iostream> #include <boost/asio.hpp> #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/timer.hpp> void print(const boost::asio::error& /*e*/); // some thing to keep the main thread busy void long_main_process_function(); int main() { boost::asio::demuxer d; boost::asio::deadline_timer t(d, boost::posix_time::seconds(5)); // Is the timer thread starting in this call? t.async_wait(print); long_main_process_function(); d.run(); } void long_main_process_function() { std::cout << "main process long function beginning\n"; boost::timer t1; int temp = 1; while(t1.elapsed() < 3){ if ( t1.elapsed() >= temp){ std::cout << " tick " << temp << " s\n"; temp += 1; } } std::cout << "main process long function done\n"; } void print(const boost::asio::error& /*e*/) { std::cout << "thread finished\n"; }