aboutsummaryrefslogtreecommitdiff
path: root/src/threading.h
diff options
context:
space:
mode:
authorBenoit Germain <benoit.germain@ubisoft.com>2024-10-28 18:09:51 +0100
committerBenoit Germain <benoit.germain@ubisoft.com>2024-10-28 18:09:51 +0100
commit3cf9c3c9d076d5822595834bdbf5153d4e923c67 (patch)
tree13ff16c05ff047a569b90e8981bdc349fd573c6e /src/threading.h
parentdf60f71fe943686deed8ca0f85c6d597570ab030 (diff)
downloadlanes-3cf9c3c9d076d5822595834bdbf5153d4e923c67.tar.gz
lanes-3cf9c3c9d076d5822595834bdbf5153d4e923c67.tar.bz2
lanes-3cf9c3c9d076d5822595834bdbf5153d4e923c67.zip
Renamed lane.h → lane.hpp, linda.h → linda.hpp, threading.h → threading.hpp
Diffstat (limited to 'src/threading.h')
-rw-r--r--src/threading.h73
1 files changed, 0 insertions, 73 deletions
diff --git a/src/threading.h b/src/threading.h
deleted file mode 100644
index 044b5a4..0000000
--- a/src/threading.h
+++ /dev/null
@@ -1,73 +0,0 @@
1#pragma once
2
3#include "platform.h"
4
5#define THREADAPI_WINDOWS 1
6#define THREADAPI_PTHREAD 2
7
8#if (defined(PLATFORM_XBOX) || defined(PLATFORM_WIN32) || defined(PLATFORM_POCKETPC))
9// #pragma message ( "THREADAPI_WINDOWS" )
10#define THREADAPI THREADAPI_WINDOWS
11#else // (defined PLATFORM_WIN32) || (defined PLATFORM_POCKETPC)
12// #pragma message ( "THREADAPI_PTHREAD" )
13#define THREADAPI THREADAPI_PTHREAD
14#endif // (defined PLATFORM_WIN32) || (defined PLATFORM_POCKETPC)
15
16static constexpr int kThreadPrioDefault{ -999 };
17
18// #################################################################################################
19// #################################################################################################
20#if THREADAPI == THREADAPI_WINDOWS
21
22#if defined(PLATFORM_XBOX)
23#include <xtl.h>
24#else // !PLATFORM_XBOX
25#define WIN32_LEAN_AND_MEAN
26// CONDITION_VARIABLE needs version 0x0600+
27// _WIN32_WINNT value is already defined by MinGW, but not by MSVC
28#ifndef _WIN32_WINNT
29#define _WIN32_WINNT 0x0600
30#endif // _WIN32_WINNT
31#include <windows.h>
32#endif // !PLATFORM_XBOX
33#include <process.h>
34
35/*
36#define XSTR(x) STR(x)
37#define STR(x) #x
38#pragma message( "The value of _WIN32_WINNT: " XSTR(_WIN32_WINNT))
39*/
40
41static constexpr int kThreadPrioMin{ -3 };
42static constexpr int kThreadPrioMax{ +3 };
43
44// #################################################################################################
45// #################################################################################################
46#else // THREADAPI == THREADAPI_PTHREAD
47// #################################################################################################
48// #################################################################################################
49
50// PThread (Linux, OS X, ...)
51
52// looks like some MinGW installations don't support PTW32_INCLUDE_WINDOWS_H, so let's include it ourselves, just in case
53#if defined(PLATFORM_WIN32)
54#include <windows.h>
55#endif // PLATFORM_WIN32
56#include <pthread.h>
57
58#if defined(PLATFORM_LINUX) && !defined(LINUX_SCHED_RR)
59static constexpr int kThreadPrioMin{ 0 };
60#else
61static constexpr int kThreadPrioMin{ -3 };
62#endif
63static constexpr int kThreadPrioMax{ +3 };
64
65#endif // THREADAPI == THREADAPI_PTHREAD
66// #################################################################################################
67// #################################################################################################
68
69void THREAD_SETNAME(std::string_view const& name_);
70void THREAD_SET_PRIORITY(int prio_, bool sudo_);
71void THREAD_SET_AFFINITY(unsigned int aff_);
72
73void THREAD_SET_PRIORITY(std::thread& thread_, int prio_, bool sudo_);