Hi all. I have developed some code allowing a thread group of 500 threads to run.
However, as soon as the 381st thread is spawned, I get the following runtime error :

terminate called after throwing an instance of 'boost::thread_resource_error'
  what():  boost::thread_resource_error

The Boost documentation does not clarify the nature of the error, so I was wondering if anyone
can help me out here. The (simple) program code follows.

#include <boost/thread/mutex.hpp>
#include <boost/thread/thread.hpp>
#include <boost/bind.hpp>

using namespace std;

boost::mutex io_mutex;

void foo(int i)
{
    boost::mutex::scoped_lock lock(io_mutex);
    cout << i << endl;
}

int main(int argc, char *arvg[])
{
    boost::thread_group tg;

    for(int i = 0;i < 500;i++)
        tg.create_thread(boost::bind(&foo,i));
    tg.join_all();

}