OnixS C++ CME iLink 3 Binary Order Entry Handler 1.19.4
Users' manual and API documentation
Loading...
Searching...
No Matches
Thread.h
Go to the documentation of this file.
1/*
2* Copyright Onix Solutions Limited [OnixS]. All rights reserved.
3*
4* This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
5* and international copyright treaties.
6*
7* Access to and use of the software is governed by the terms of the applicable OnixS Software
8* Services Agreement (the Agreement) and Customer end user license agreements granting
9* a non-assignable, non-transferable and non-exclusive license to use the software
10* for it's own data processing purposes under the terms defined in the Agreement.
11*
12* Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
13* of this source code or associated reference material to any other location for further reproduction
14* or redistribution, and any amendments to this copyright notice, are expressly prohibited.
15*
16* Any reproduction or redistribution for sale or hiring of the Software not in accordance with
17* the terms of the Agreement is a violation of copyright law.
18*/
19
20#pragma once
21
22#include <set>
23
26
27namespace OnixS {
28namespace CME {
29namespace iLink3 {
30namespace Threading {
31
33typedef size_t CpuIndex;
34typedef std::set < CpuIndex > CpuIndexes;
35
38{
39public:
40
43 explicit ThreadAffinity(const std::string & str);
44
47
49 const CpuIndexes & cpuIndexes() const;
50
53
55 std::string toString();
56
57private:
59 ThreadAffinity & operator = (const ThreadAffinity &);
60
61 CpuIndexes * indexes_;
62};
63
65class ONIXS_ILINK3_EXPORTED ThisThread
66{
67public:
70 static void sleep(unsigned int milliseconds);
71
73 static void spinWait(unsigned int microseconds);
74
76 static void affinity(const CpuIndexes & cpuIndexes);
77
79 static void affinity(CpuIndex cpuIndex);
80
82 static void priority(int priority);
83
88 static void policy(int policy);
89
91 static ThreadId id();
92
94 static unsigned int processorNumber();
95
96private:
97 ThisThread(const ThisThread &);
98 ThisThread & operator = (const ThisThread &);
99};
100
101}
102}
103}
104}
#define ONIXS_ILINK3_EXPORTED
Definition Compiler.h:145
static void priority(int priority)
Sets the priority for the current thread.
static void affinity(const CpuIndexes &cpuIndexes)
Sets the processor affinity mask for the current thread.
static void affinity(CpuIndex cpuIndex)
Sets the processor affinity mask for the current thread.
static void spinWait(unsigned int microseconds)
Executes a single instruction during the given number of microseconds.
static void sleep(unsigned int milliseconds)
CpuIndexes & cpuIndexes()
Collection of CPU indices.
const CpuIndexes & cpuIndexes() const
Read-only access to index collection.
std::string toString()
Serializes thread affinity to the string presentation.
size_t CpuIndex
Logical processors that a thread is allowed to run on (first logical CPU has index 0).
Definition Thread.h:33
std::set< CpuIndex > CpuIndexes
Definition Thread.h:34
pthread_t ThreadId
Type alias for thread identifier.
Definition Definitions.h:34