diff options
author | Gennadiy Civil <gennadiycivil@users.noreply.github.com> | 2017-10-30T14·56-0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-30T14·56-0400 |
commit | 200b5a7cb0fb256ab47c933b3150aed91d9d3470 (patch) | |
tree | 300713d880c593eb36cc6cea4bc8d1073bb03112 /absl/base/internal/spinlock_akaros.inc | |
parent | d5134a7f11e32d11caa67e75ae2ae2e506fb54ba (diff) | |
parent | 0fece732a21c5ae8fef5fa8b3f0b8487bca68d83 (diff) |
Merge branch 'master' into master
Diffstat (limited to 'absl/base/internal/spinlock_akaros.inc')
-rw-r--r-- | absl/base/internal/spinlock_akaros.inc | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/absl/base/internal/spinlock_akaros.inc b/absl/base/internal/spinlock_akaros.inc new file mode 100644 index 000000000000..051c8cf87fb6 --- /dev/null +++ b/absl/base/internal/spinlock_akaros.inc @@ -0,0 +1,35 @@ +// 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. +// +// This file is an Akaros-specific part of spinlock_wait.cc + +#include <atomic> + +#include "absl/base/internal/scheduling_mode.h" + +extern "C" { + +ABSL_ATTRIBUTE_WEAK void AbslInternalSpinLockDelay( + std::atomic<uint32_t>* /* lock_word */, uint32_t /* value */, + int /* loop */, absl::base_internal::SchedulingMode /* mode */) { + // In Akaros, one must take care not to call anything that could cause a + // malloc(), a blocking system call, or a uthread_yield() while holding a + // spinlock. Our callers assume will not call into libraries or other + // arbitrary code. +} + +ABSL_ATTRIBUTE_WEAK void AbslInternalSpinLockWake( + std::atomic<uint32_t>* /* lock_word */, bool /* all */) {} + +} // extern "C" |