//===-- sanitizer_thread_arg_retval.h ---------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file is shared between sanitizer tools. // // Tracks thread arguments and return value for leak checking. //===----------------------------------------------------------------------===// #ifndef SANITIZER_THREAD_ARG_RETVAL_H #define SANITIZER_THREAD_ARG_RETVAL_H #include "sanitizer_common.h" #include "sanitizer_dense_map.h" #include "sanitizer_list.h" #include "sanitizer_mutex.h" namespace __sanitizer { // Primary goal of the class is to keep alive arg and retval pointer for leak // checking. However it can be used to pass those pointer into wrappers used by // interceptors. The difference from ThreadRegistry/ThreadList is that this // class keeps data up to the detach or join, as exited thread still can be // joined to retrive retval. ThreadRegistry/ThreadList can discard exited // threads immediately. class SANITIZER_MUTEX ThreadArgRetval { … }; } // namespace __sanitizer #endif // SANITIZER_THREAD_ARG_RETVAL_H