[compiler-rt] Use empty SuspendedThreadsList for Fuchsia

d48f2d7 made destructor of SuspendedThreadsList protected, so we need
an empty subclass to pass to the callback now.

Differential Revision: https://reviews.llvm.org/D90695
This commit is contained in:
Petr Hosek 2020-11-03 10:41:17 -08:00
parent 4cd0927306
commit e0b5e5a9d8
3 changed files with 24 additions and 2 deletions

View File

@ -19,6 +19,7 @@
#include "lsan_allocator.h"
#include "sanitizer_common/sanitizer_flags.h"
#include "sanitizer_common/sanitizer_stoptheworld_fuchsia.h"
#include "sanitizer_common/sanitizer_thread_registry.h"
// Ensure that the Zircon system ABI is linked in.
@ -147,7 +148,7 @@ void LockStuffAndStopTheWorld(StopTheWorldCallback callback,
&params->argument->frontier);
}
params->callback({}, params->argument);
params->callback(SuspendedThreadsListFuchsia(), params->argument);
},
&params);

View File

@ -17,6 +17,7 @@
#include <zircon/sanitizer.h>
#include "sanitizer_stoptheworld.h"
#include "sanitizer_stoptheworld_fuchsia.h"
namespace __sanitizer {
@ -32,7 +33,7 @@ void StopTheWorld(StopTheWorldCallback callback, void *argument) {
nullptr, nullptr, nullptr, nullptr,
[](zx_status_t, void *data) {
auto params = reinterpret_cast<Params *>(data);
params->callback({}, params->argument);
params->callback(SuspendedThreadsListFuchsia(), params->argument);
},
&params);
}

View File

@ -0,0 +1,20 @@
//===-- sanitizer_stoptheworld_fuchsia.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
//
//===----------------------------------------------------------------------===//
#ifndef SANITIZER_STOPTHEWORLD_FUCHSIA_H
#define SANITIZER_STOPTHEWORLD_FUCHSIA_H
#include "sanitizer_stoptheworld.h"
namespace __sanitizer {
class SuspendedThreadsListFuchsia final : public SuspendedThreadsList {};
} // namespace __sanitizer
#endif // SANITIZER_STOPTHEWORLD_FUCHSIA_H