Cogs.Core
Threads.Emscripten.cpp
1#include "Threads.h"
2
3#if defined(COGS_SINGLETHREADED)
4
5#pragma message( "Building single threaded Cogs::Threads." )
6
7void Cogs::Threads::setName(Thread& /*thread*/, const std::string& /*name*/) {
8}
9
10void Cogs::Threads::sleep(int /*milliseconds*/) {
11}
12
13void Cogs::Threads::yield() {
14}
15
16size_t Cogs::Threads::hardwareConcurrency() {
17 return 1;
18}
19
20#else
21
22#pragma message( "Building multithreaded Cogs::Threads." )
23
24#include <emscripten/threading.h>
25
26void Cogs::Threads::setName(Thread& thread, const std::string& name) {
27 emscripten_set_thread_name(thread.native_handle(), name.c_str());
28}
29
30void Cogs::Threads::sleep(int milliseconds) {
31 std::this_thread::sleep_for(std::chrono::milliseconds(milliseconds));
32}
33
34void Cogs::Threads::yield() {
35 std::this_thread::yield();
36}
37
38size_t Cogs::Threads::hardwareConcurrency() {
39 return std::thread::hardware_concurrency();
40}
41
42#endif