tvl-depot/absl/synchronization/BUILD.bazel
Abseil Team 8b727aa7ab Changes imported from Abseil "staging" branch:
- 5d8235b05f4ea2b33a138712f463a30b6ae75719 Incorporate PR https://github.com/abseil/abseil-cpp/pull/... by Xiaoyi Zhang <zhangxy@google.com>
  - f2bc653acdaa983aa2765693476c17cd1142d59b Run the StrSplit WorksWithLargeStrings test in all configs. by Matt Armstrong <marmstrong@google.com>
  - 43aed1ea7dffcd656e1916c2d5637650fc3a8de3 Incorporate PR https://github.com/abseil/abseil-cpp/pull/... by Xiaoyi Zhang <zhangxy@google.com>
  - d58511d60904c7090e44638339ba63b97ca96f1a Add a new simple Mutex lifetime test, to be extended later. by Greg Falcon <gfalcon@google.com>
  - db5c86c186c09ad57963bcbd2b6182f62bce8ed0 Actually use the exception in TestCheckerAtCountdown by Jon Cohen <cohenjon@google.com>
  - 29c01a72b62d9a4b90f9bd935e3575adbafd85ed Use factories instead of explicitly passing pointers to T... by Jon Cohen <cohenjon@google.com>
  - 54d5526ee6ab7784992845f6e6e2c7d48ba008a5 Fix uint128 ostream operator and improve ostream test. by Alex Strelnikov <strel@google.com>
  - 4e49abe7e569cf6bd0eae95ce2b2fe2faa051fa2 Fix documentation: strings::PairFormatter -> absl::PairFo... by Derek Mauro <dmauro@google.com>
  - 4044297f0e1a8a6c6ae3f781a65080e0d57c6751 Cut the memory used by the StrSplit WorksWithLargeStrings... by Jorg Brown <jorg@google.com>

GitOrigin-RevId: 5d8235b05f4ea2b33a138712f463a30b6ae75719
Change-Id: Ib6b6b0161c26e5326b53a126454754e33678eefc
2017-12-01 15:25:15 -05:00

208 lines
4.7 KiB
Python

#
# 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
#
# 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.
#
load(
"//absl:copts.bzl",
"ABSL_DEFAULT_COPTS",
"ABSL_TEST_COPTS",
)
package(default_visibility = ["//visibility:public"])
licenses(["notice"]) # Apache 2.0
# Internal data structure for efficiently detecting mutex dependency cycles
cc_library(
name = "graphcycles_internal",
srcs = [
"internal/graphcycles.cc",
],
hdrs = [
"internal/graphcycles.h",
],
copts = ABSL_DEFAULT_COPTS,
visibility = [
"//absl:__subpackages__",
],
deps = [
"//absl/base",
"//absl/base:core_headers",
"//absl/base:malloc_internal",
],
)
cc_library(
name = "synchronization",
srcs = [
"barrier.cc",
"blocking_counter.cc",
"internal/create_thread_identity.cc",
"internal/per_thread_sem.cc",
"internal/waiter.cc",
"notification.cc",
] + select({
"//conditions:default": ["mutex.cc"],
}),
hdrs = [
"barrier.h",
"blocking_counter.h",
"internal/create_thread_identity.h",
"internal/kernel_timeout.h",
"internal/mutex_nonprod.inc",
"internal/per_thread_sem.h",
"internal/waiter.h",
"mutex.h",
"notification.h",
],
copts = ABSL_DEFAULT_COPTS,
deps = [
":graphcycles_internal",
"//absl/base",
"//absl/base:base_internal",
"//absl/base:config",
"//absl/base:core_headers",
"//absl/base:dynamic_annotations",
"//absl/base:malloc_extension",
"//absl/base:malloc_internal",
"//absl/debugging:stacktrace",
"//absl/time",
],
)
cc_test(
name = "barrier_test",
size = "small",
srcs = ["barrier_test.cc"],
copts = ABSL_TEST_COPTS,
deps = [
":synchronization",
"//absl/time",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "blocking_counter_test",
size = "small",
srcs = ["blocking_counter_test.cc"],
copts = ABSL_TEST_COPTS,
deps = [
":synchronization",
"//absl/time",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "graphcycles_test",
size = "medium",
srcs = ["internal/graphcycles_test.cc"],
copts = ABSL_TEST_COPTS,
deps = [
":graphcycles_internal",
"//absl/base",
"//absl/base:core_headers",
"@com_google_googletest//:gtest_main",
],
)
cc_library(
name = "thread_pool",
testonly = 1,
hdrs = ["internal/thread_pool.h"],
deps = [
":synchronization",
"//absl/base:core_headers",
],
)
cc_test(
name = "mutex_test",
size = "large",
srcs = ["mutex_test.cc"],
copts = ABSL_TEST_COPTS,
tags = [
"no_test_loonix", # Too slow.
],
deps = [
":synchronization",
":thread_pool",
"//absl/base",
"//absl/base:core_headers",
"//absl/memory",
"//absl/time",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "notification_test",
size = "small",
srcs = ["notification_test.cc"],
copts = ABSL_TEST_COPTS,
deps = [
":synchronization",
"//absl/time",
"@com_google_googletest//:gtest_main",
],
)
cc_library(
name = "per_thread_sem_test_common",
testonly = 1,
srcs = ["internal/per_thread_sem_test.cc"],
copts = ABSL_TEST_COPTS,
deps = [
":synchronization",
"//absl/base",
"//absl/base:malloc_extension",
"//absl/strings",
"//absl/time",
"@com_google_googletest//:gtest",
],
alwayslink = 1,
)
cc_test(
name = "per_thread_sem_test",
size = "medium",
copts = ABSL_TEST_COPTS,
deps = [
":per_thread_sem_test_common",
":synchronization",
"//absl/base",
"//absl/base:malloc_extension",
"//absl/strings",
"//absl/time",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "lifetime_test",
srcs = [
"lifetime_test.cc",
],
copts = ABSL_TEST_COPTS,
linkopts = select({
"//absl:windows": [],
"//conditions:default": ["-pthread"],
}),
deps = [
":synchronization",
"//absl/base",
],
)