I've tryed implementing your suggestions with the following code:
#include <iostream>
#include
#include
#include
#include
#include
void handler1()
{
unsigned short int i;
std::cout << "O--> Handler 1 <--O" << std::endl;
for(i=0; i<65000; i++);
std::cout << "X--> Handler 1 <--X" << std::endl;
}
void handler2()
{
unsigned short int i;
std::cout << "O--> Handler 2 <--O" << std::endl;
for(i=0; i<1000; i++);
std::cout << "X--> Handler 2 <--X" << std::endl;
}
int main()
{
unsigned short nProc,
i;
boost::asio::io_service io;
boost::scoped_ptrboost::asio::io_service::work work(new
boost::asio::io_service::work(io));
boost::thread_group tg;
nProc = boost::thread::hardware_concurrency();
for(i=0; i