threadman
0.1.0
Header-only C++23 managed threads, dynamic pools, futures, and executors
Loading...
Searching...
No Matches
include
threadman
config.hpp
Go to the documentation of this file.
1
#pragma once
2
19
20
// Platform detection -------------------------------------------------------
21
#if defined(__linux__)
22
#define THREADMAN_PLATFORM_LINUX 1
23
#define THREADMAN_PLATFORM_APPLE 0
24
#define THREADMAN_PLATFORM_OTHER 0
25
#elif defined(__APPLE__)
26
#define THREADMAN_PLATFORM_LINUX 0
27
#define THREADMAN_PLATFORM_APPLE 1
28
#define THREADMAN_PLATFORM_OTHER 0
29
#else
30
#define THREADMAN_PLATFORM_LINUX 0
31
#define THREADMAN_PLATFORM_APPLE 0
32
#define THREADMAN_PLATFORM_OTHER 1
33
#endif
34
35
// nlohmann/json integration ------------------------------------------------
36
#if !defined(THREADMAN_WITH_NLOHMANN_JSON)
37
#if defined(__has_include)
38
#if __has_include(<nlohmann/json.hpp>)
39
#define THREADMAN_WITH_NLOHMANN_JSON 1
40
#else
41
#define THREADMAN_WITH_NLOHMANN_JSON 0
42
#endif
43
#else
44
#define THREADMAN_WITH_NLOHMANN_JSON 0
45
#endif
46
#endif
47
48
// cpp-parcel integration ---------------------------------------------------
49
#if !defined(THREADMAN_WITH_PARCEL)
50
#if defined(__has_include)
51
#if __has_include(<parcel/parcel.h>)
52
#define THREADMAN_WITH_PARCEL 1
53
#else
54
#define THREADMAN_WITH_PARCEL 0
55
#endif
56
#else
57
#define THREADMAN_WITH_PARCEL 0
58
#endif
59
#endif
60
61
// Tunable defaults ---------------------------------------------------------
62
65
#if !defined(THREADMAN_RECENT_TASKS_CAPACITY)
66
#define THREADMAN_RECENT_TASKS_CAPACITY 256
67
#endif
68
70
#if !defined(THREADMAN_DEFAULT_POOL_NAME)
71
#define THREADMAN_DEFAULT_POOL_NAME "tm::default"
72
#endif
73
76
#if !defined(THREADMAN_DEFAULT_SCALE_UP_WAIT_MS)
77
#define THREADMAN_DEFAULT_SCALE_UP_WAIT_MS 50
78
#endif
79
82
#if !defined(THREADMAN_DEFAULT_IDLE_TIMEOUT_MS)
83
#define THREADMAN_DEFAULT_IDLE_TIMEOUT_MS 30000
84
#endif
85
87
#if !defined(THREADMAN_DEFAULT_SCALE_UP_QUEUE_THRESHOLD)
88
#define THREADMAN_DEFAULT_SCALE_UP_QUEUE_THRESHOLD 4
89
#endif
90
92
#if !defined(THREADMAN_DEFAULT_SCALE_CHECK_INTERVAL_MS)
93
#define THREADMAN_DEFAULT_SCALE_CHECK_INTERVAL_MS 100
94
#endif
95
97
#if !defined(THREADMAN_DEFAULT_STUCK_TASK_THRESHOLD_MS)
98
#define THREADMAN_DEFAULT_STUCK_TASK_THRESHOLD_MS 60000
99
#endif
100
102
#if !defined(THREADMAN_DEFAULT_SUMMARY_INTERVAL_MS)
103
#define THREADMAN_DEFAULT_SUMMARY_INTERVAL_MS 1000
104
#endif
105
109
#if !defined(THREADMAN_DEFAULT_FUTURE_WAIT_SCALE_UP_WAIT_MS)
110
#define THREADMAN_DEFAULT_FUTURE_WAIT_SCALE_UP_WAIT_MS 10
111
#endif
Generated by
1.9.8