brintos

brintos / llvm-project-archived public Read only

0
0
Text · 981 B · 1fca1cf Raw
39 lines · cpp
1//===-- tsan_ignoreset.cpp ------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file is a part of ThreadSanitizer (TSan), a race detector.10//11//===----------------------------------------------------------------------===//12#include "tsan_ignoreset.h"13 14namespace __tsan {15 16const uptr IgnoreSet::kMaxSize;17 18IgnoreSet::IgnoreSet()19    : size_() {20}21 22void IgnoreSet::Add(StackID stack_id) {23  if (size_ == kMaxSize)24    return;25  for (uptr i = 0; i < size_; i++) {26    if (stacks_[i] == stack_id)27      return;28  }29  stacks_[size_++] = stack_id;30}31 32StackID IgnoreSet::At(uptr i) const {33  CHECK_LT(i, size_);34  CHECK_LE(size_, kMaxSize);35  return stacks_[i];36}37 38}  // namespace __tsan39