1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /*
- *
- * Copyright 2016 gRPC 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
- *
- * http://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 GRPC_IMPL_CODEGEN_SYNC_H
- #define GRPC_IMPL_CODEGEN_SYNC_H
- // IWYU pragma: private, include <grpc/support/sync.h>
- /** Synchronization primitives for GPR.
- The type gpr_mu provides a non-reentrant mutex (lock).
- The type gpr_cv provides a condition variable.
- The type gpr_once provides for one-time initialization.
- The type gpr_event provides one-time-setting, reading, and
- waiting of a void*, with memory barriers.
- The type gpr_refcount provides an object reference counter,
- with memory barriers suitable to control
- object lifetimes.
- The type gpr_stats_counter provides an atomic statistics counter. It
- provides no memory barriers.
- */
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Platform-specific type declarations of gpr_mu and gpr_cv. */
- #include <grpc/impl/codegen/port_platform.h>
- #include <grpc/impl/codegen/sync_generic.h> // IWYU pragma: export
- #if defined(GPR_CUSTOM_SYNC)
- #include <grpc/impl/codegen/sync_custom.h> // IWYU pragma: export
- #elif defined(GPR_ABSEIL_SYNC)
- #include <grpc/impl/codegen/sync_abseil.h> // IWYU pragma: export
- #elif defined(GPR_POSIX_SYNC)
- #include <grpc/impl/codegen/sync_posix.h> // IWYU pragma: export
- #elif defined(GPR_WINDOWS)
- #include <grpc/impl/codegen/sync_windows.h> // IWYU pragma: export
- #else
- #error Unable to determine platform for sync
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif /* GRPC_IMPL_CODEGEN_SYNC_H */
|