Realm
Version 25.6.1-rc.4+77e872a5
A distributed, event-based tasking library
Main Page
Namespaces
Classes
Files
File List
File Members
Loading...
Searching...
No Matches
spinlock.h
Go to the documentation of this file.
1
/*
2
* Copyright 2025 NVIDIA Corporation
3
* SPDX-License-Identifier: Apache-2.0
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
#ifndef SPINLOCK_H
19
#define SPINLOCK_H
20
21
#include <pthread.h>
22
23
namespace
Realm
{
24
namespace
UCP {
25
26
class
SpinLock
{
27
public
:
28
SpinLock
()
29
{
30
int
ret = pthread_spin_init(&pth_spinlock, PTHREAD_PROCESS_PRIVATE);
31
assert(ret == 0);
32
}
33
34
~SpinLock
()
35
{
36
int
ret = pthread_spin_destroy(&pth_spinlock);
37
assert(ret == 0);
38
}
39
40
int
lock
() {
return
pthread_spin_lock(&pth_spinlock); }
41
42
int
unlock
() {
return
pthread_spin_unlock(&pth_spinlock); }
43
44
int
trylock
()
45
{
46
if
(pthread_spin_trylock(&pth_spinlock) == 0)
47
return
1;
48
return
0;
49
}
50
51
private
:
52
pthread_spinlock_t pth_spinlock;
53
};
54
55
};
// namespace UCP
56
57
};
// namespace Realm
58
59
#endif
Realm::UCP::SpinLock
Definition
spinlock.h:26
Realm::UCP::SpinLock::lock
int lock()
Definition
spinlock.h:40
Realm::UCP::SpinLock::~SpinLock
~SpinLock()
Definition
spinlock.h:34
Realm::UCP::SpinLock::SpinLock
SpinLock()
Definition
spinlock.h:28
Realm::UCP::SpinLock::unlock
int unlock()
Definition
spinlock.h:42
Realm::UCP::SpinLock::trylock
int trylock()
Definition
spinlock.h:44
Realm
Definition
activemsg.h:38
src
realm
ucx
spinlock.h
Generated by
1.9.8