X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;ds=sidebyside;f=nssm.cpp;h=8dd264ad713d9aa001490fd2c8a2a3fb7a941f33;hb=143238dfe314c16bc90a6807ab0f00220efd34a2;hp=9f3174fb2417857a4dccc78bf1517799fb982699;hpb=03f6899464b863fc2dd05e7c8e5047e0c1b9281d;p=nssm.git diff --git a/nssm.cpp b/nssm.cpp index 9f3174f..8dd264a 100644 --- a/nssm.cpp +++ b/nssm.cpp @@ -75,9 +75,25 @@ static void check_console() { FreeConsole(); } +int num_cpus() { + DWORD_PTR i, affinity, system_affinity; + if (! GetProcessAffinityMask(GetCurrentProcess(), &affinity, &system_affinity)) return 64; + for (i = 0; system_affinity & (1LL << i); i++); + return (int) i; +} + int _tmain(int argc, TCHAR **argv) { check_console(); +#ifdef UNICODE + /* + Ensure we write in UTF-16 mode, so that non-ASCII characters don't get + mangled. If we were compiled in ANSI mode it won't work. + */ + _setmode(_fileno(stdout), _O_U16TEXT); + _setmode(_fileno(stderr), _O_U16TEXT); +#endif + /* Remember if we are admin */ check_admin();