chromium/third_party/grpc/src/src/core/lib/gpr/sync.cc

//
//
// Copyright 2015 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.
//
//

// Generic implementation of synchronization primitives.

#include <grpc/support/port_platform.h>

#include <assert.h>

#include <grpc/support/atm.h>
#include <grpc/support/log.h>
#include <grpc/support/sync.h>

// Number of mutexes to allocate for events, to avoid lock contention.
// Should be a prime.
enum {};

// Events are partitioned by address to avoid lock contention.
static struct sync_array_s {} sync_array[event_sync_partitions];

// This routine is executed once on first use, via event_once
static gpr_once event_once =;
static void event_initialize(void) {}

// Hash ev into an element of sync_array[].
static struct sync_array_s* hash(gpr_event* ev) {}

void gpr_event_init(gpr_event* ev) {}

void gpr_event_set(gpr_event* ev, void* value) {}

void* gpr_event_get(gpr_event* ev) {}

void* gpr_event_wait(gpr_event* ev, gpr_timespec abs_deadline) {}

void gpr_ref_init(gpr_refcount* r, int n) {}

void gpr_ref(gpr_refcount* r) {}

void gpr_ref_non_zero(gpr_refcount* r) {}

void gpr_refn(gpr_refcount* r, int n) {}

int gpr_unref(gpr_refcount* r) {}

int gpr_ref_is_unique(gpr_refcount* r) {}

void gpr_stats_init(gpr_stats_counter* c, intptr_t n) {}

void gpr_stats_inc(gpr_stats_counter* c, intptr_t inc) {}

intptr_t gpr_stats_read(const gpr_stats_counter* c) {}