Sha256: e22d04465943f60511e1957fb47e570dd5ff53eb1e3385f084047d3881dcf3a3

Contents?: true

Size: 1.72 KB

Versions: 104

Compression:

Stored size: 1.72 KB

Contents

// Copyright 2017 The Abseil Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#ifndef ABSL_BASE_INTERNAL_PER_THREAD_TLS_H_
#define ABSL_BASE_INTERNAL_PER_THREAD_TLS_H_

// This header defines two macros:
//
// If the platform supports thread-local storage:
//
// * ABSL_PER_THREAD_TLS_KEYWORD is the C keyword needed to declare a
//   thread-local variable
// * ABSL_PER_THREAD_TLS is 1
//
// Otherwise:
//
// * ABSL_PER_THREAD_TLS_KEYWORD is empty
// * ABSL_PER_THREAD_TLS is 0
//
// Microsoft C supports thread-local storage.
// GCC supports it if the appropriate version of glibc is available,
// which the programmer can indicate by defining ABSL_HAVE_TLS

#include "absl/base/port.h"  // For ABSL_HAVE_TLS

#if defined(ABSL_PER_THREAD_TLS)
#error ABSL_PER_THREAD_TLS cannot be directly set
#elif defined(ABSL_PER_THREAD_TLS_KEYWORD)
#error ABSL_PER_THREAD_TLS_KEYWORD cannot be directly set
#elif defined(ABSL_HAVE_TLS)
#define ABSL_PER_THREAD_TLS_KEYWORD __thread
#define ABSL_PER_THREAD_TLS 1
#elif defined(_MSC_VER)
#define ABSL_PER_THREAD_TLS_KEYWORD __declspec(thread)
#define ABSL_PER_THREAD_TLS 1
#else
#define ABSL_PER_THREAD_TLS_KEYWORD
#define ABSL_PER_THREAD_TLS 0
#endif

#endif  // ABSL_BASE_INTERNAL_PER_THREAD_TLS_H_

Version data entries

104 entries across 104 versions & 3 rubygems

Version Path
grpc-1.48.0 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.48.0.pre1 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.48.0.pre1-x86_64-linux third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.47.0 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.47.0-x86_64-linux third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.46.3-x86_64-linux third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.46.3 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.46.2 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.46.2-x86_64-linux third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.45.0 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
gitlab-grpc-1.42.1.gitlab third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.44.0.pre2 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.43.1 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.42.0 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.41.1 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.42.0.pre1 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.41.0 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.41.0.pre2 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.40.0 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
grpc-1.39.0 third_party/abseil-cpp/absl/base/internal/per_thread_tls.h