OnixS C++ CME iLink 3 Binary Order Entry Handler 1.18.9
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:175
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 policy(int policy)
Sets the scheduling policy for the current thread.
static void sleep(unsigned int milliseconds)
Suspends the execution of the current thread for the given amount of time.
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.
ThreadAffinity(const std::string &str)
Constructs thread affinity from 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