Files
2024-01-16 11:21:40 -08:00

110 lines
2.3 KiB
Python

load("//pkg/sync/locking:locking.bzl", "declare_mutex", "declare_rwmutex")
load("//tools:defs.bzl", "go_library", "go_test")
load("//tools/go_generics:defs.bzl", "go_template", "go_template_instance")
package(
default_applicable_licenses = ["//:license"],
default_visibility = ["//:sandbox"],
licenses = ["notice"],
)
go_library(
name = "locking",
srcs = [
"atomicptrmap_ancestors_unsafe.go",
"atomicptrmap_goroutine_unsafe.go",
"lockdep.go",
"lockdep_norace.go",
"locking.go",
],
marshal = False,
stateify = False,
visibility = ["//:sandbox"],
deps = [
"//pkg/gohacks",
"//pkg/goid",
"//pkg/log",
"//pkg/sync",
],
)
go_template_instance(
name = "atomicptrmap_goroutine",
out = "atomicptrmap_goroutine_unsafe.go",
package = "locking",
prefix = "goroutineLocks",
template = "//pkg/sync/atomicptrmap:generic_atomicptrmap",
types = {
"Key": "int64",
"Value": "goroutineLocks",
},
)
go_template_instance(
name = "atomicptrmap_ancestors",
out = "atomicptrmap_ancestors_unsafe.go",
imports = {
"reflect": "reflect",
},
package = "locking",
prefix = "ancestors",
template = "//pkg/sync/atomicptrmap:generic_atomicptrmap",
types = {
"Key": "*MutexClass",
"Value": "string",
},
)
go_template(
name = "generic_mutex",
srcs = ["generic_mutex.go"],
visibility = ["//:sandbox"],
)
go_template(
name = "generic_rwmutex",
srcs = ["generic_rwmutex.go"],
visibility = ["//:sandbox"],
)
declare_mutex(
name = "mutex_test",
out = "mutex_test.go",
nested_lock_names = [
"m2",
"m3",
],
package = "locking_test",
prefix = "test",
)
declare_rwmutex(
name = "mutex_test2",
out = "mutex_test2.go",
package = "locking_test",
prefix = "test2",
)
declare_mutex(
name = "mutex_test3",
out = "mutex_test3.go",
package = "locking_test",
prefix = "test3",
)
go_test(
name = "locking_test",
size = "small",
srcs = [
"lockdep_nolockdep_test.go",
"lockdep_test.go",
"mutex_test.go",
"mutex_test2.go",
"mutex_test3.go",
],
deps = [
"//pkg/sync",
"//pkg/sync/locking",
],
)