libacfutils
A general purpose library of utility functions designed to make it easier to develop addons for the X-Plane flight simulator.
Loading...
Searching...
No Matches
tls.h
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license in the file COPYING
10 * or http://www.opensource.org/licenses/CDDL-1.0.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file COPYING.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22/*
23 * Copyright 2019 Saso Kiselkov. All rights reserved.
24 */
25
26#ifndef _ACF_UTILS_TLS_H_
27#define _ACF_UTILS_TLS_H_
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33/*
34 * Universal thread-local-storage attribute qualifier.
35 */
36#ifndef THREAD_LOCAL
37#if defined(__GNUC__) || defined(__clang__)
38#define THREAD_LOCAL __thread
39#elif defined(_MSC_VER)
40#define THREAD_LOCAL __declspec(thread)
41#else
42#error "Thread-local storage is not supported on your platform"
43#endif
44#endif /* THREAD_LOCAL */
45
46#ifdef __cplusplus
47}
48#endif
49
50#endif /* _ACF_UTILS_TLS_H_ */