// Copyright (C) 2016 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#ifndef DLIB_AsYNC_CPP_
#define DLIB_AsYNC_CPP_
// C++11 things don't work in old versions of visual studio
#if !defined( _MSC_VER) || _MSC_VER >= 1900
#include "async.h"
#include <stdlib.h>
#include "../string.h"
#include <thread>
namespace dlib
{
// ----------------------------------------------------------------------------------------
namespace impl
{
unsigned long default_num_threads()
{
try
{
char* nt = getenv("DLIB_NUM_THREADS");
if (nt)
return string_cast<unsigned long>(nt);
} catch(string_cast_error&) {}
return std::thread::hardware_concurrency();
}
}
// ----------------------------------------------------------------------------------------
thread_pool& default_thread_pool()
{
static thread_pool tp(impl::default_num_threads());
return tp;
}
}
// ----------------------------------------------------------------------------------------
#endif
#endif // DLIB_AsYNC_CPP_