31 lines · cpp
1//===-- mutex_posix.cpp -----------------------------------------*- C++ -*-===//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#include "gwp_asan/mutex.h"10 11#include <assert.h>12#include <pthread.h>13 14namespace gwp_asan {15void Mutex::lock() {16 int Status = pthread_mutex_lock(&Mu);17 assert(Status == 0);18 // Remove warning for non-debug builds.19 (void)Status;20}21 22bool Mutex::tryLock() { return pthread_mutex_trylock(&Mu) == 0; }23 24void Mutex::unlock() {25 int Status = pthread_mutex_unlock(&Mu);26 assert(Status == 0);27 // Remove warning for non-debug builds.28 (void)Status;29}30} // namespace gwp_asan31