I've hit this break a few times while playing around with web bluetooth on windows, but can not reproduce it consistently.
> base.dll!base::debug::BreakDebugger() Line 21 C++ Symbols loaded.
base.dll!logging::LogMessage::~LogMessage() Line 844 C++ Symbols loaded.
base.dll!`anonymous namespace'::ActiveVerifier::StopTracking(void * handle, const void * owner, const void * pc1, const void * pc2) Line 220 C++ Symbols loaded.
base.dll!base::win::VerifierTraits::StopTracking(void * handle, const void * owner, const void * pc1, const void * pc2) Line 281 C++ Symbols loaded.
bluetooth.dll!base::win::GenericScopedHandle<base::win::HandleTraits,base::win::VerifierTraits>::Close() Line 103 C++ Symbols loaded.
bluetooth.dll!base::win::GenericScopedHandle<base::win::HandleTraits,base::win::VerifierTraits>::Set(void * handle) Line 73 C++ Symbols loaded.
bluetooth.dll!device::win::BluetoothClassicWrapper::FindFirstRadio(const _BLUETOOTH_FIND_RADIO_PARAMS * params, void * * out_handle) Line 42 C++ Symbols loaded.
bluetooth.dll!device::BluetoothTaskManagerWin::PollAdapter() Line 383 C++ Symbols loaded.
bluetooth.dll!base::internal::FunctorTraits<void (device::BluetoothTaskManagerWin::*)() __attribute__((thiscall)),void>::Invoke<const scoped_refptr<device::BluetoothTaskManagerWin> &>(void(device::BluetoothTaskManagerWin::*)() method, const scoped_refptr<device::BluetoothTaskManagerWin> & receiver_ptr) Line 211 C++ Symbols loaded.
bluetooth.dll!base::internal::InvokeHelper<0,void>::MakeItSo<void (device::BluetoothTaskManagerWin::*const &)() __attribute__((thiscall)),const scoped_refptr<device::BluetoothTaskManagerWin> &>(void(device::BluetoothTaskManagerWin::*)() & functor, const scoped_refptr<device::BluetoothTaskManagerWin> & args) Line 294 C++ Symbols loaded.
bluetooth.dll!base::internal::Invoker<base::internal::BindState<void (device::BluetoothTaskManagerWin::*)() __attribute__((thiscall)),scoped_refptr<device::BluetoothTaskManagerWin> >,void ()>::RunImpl<void (device::BluetoothTaskManagerWin::*const &)() __attribute__((thiscall)),const std::tuple<scoped_refptr<device::BluetoothTaskManagerWin> > &,0>(void(device::BluetoothTaskManagerWin::*)() & functor, const std::tuple<scoped_refptr<device::BluetoothTaskManagerWin> > & bound, std::integer_sequence<unsigned int,0>) Line 368 C++ Symbols loaded.
bluetooth.dll!base::internal::Invoker<base::internal::BindState<void (device::BluetoothTaskManagerWin::*)() __attribute__((thiscall)),scoped_refptr<device::BluetoothTaskManagerWin> >,void ()>::Run(base::internal::BindStateBase * base) Line 350 C++ Symbols loaded.
base.dll!base::OnceCallback<void ()>::Run() Line 65 C++ Symbols loaded.
base.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, base::PendingTask * pending_task) Line 55 C++ Symbols loaded.
base.dll!base::internal::TaskTracker::RunOrSkipTask(base::internal::Task task, base::internal::Sequence * sequence, bool can_run_task) Line 439 C++ Symbols loaded.
base.dll!base::internal::TaskTracker::RunNextTask(scoped_refptr<base::internal::Sequence> sequence, base::internal::CanScheduleSequenceObserver * observer) Line 341 C++ Symbols loaded.
base.dll!base::internal::SchedulerWorker::Thread::ThreadMain() Line 72 C++ Symbols loaded.
base.dll!base::`anonymous namespace'::ThreadFunc(void * params) Line 93 C++ Symbols loaded.
Since we're just vending handles, I am not sure why we used scoped handles here:
https://cs.chromium.org/chromium/src/device/bluetooth/bluetooth_classic_win.cc?type=cs&q=BluetoothClassicWrapper::FindFirstRadio&sq=package:chromium&l=42
It was added:
https://codereview.chromium.org/1672843002/patch/60001/70001
Why don't we just remove this member:
https://cs.chromium.org/search/?q=opened_radio_handle_&sq=package:chromium&type=cs
Comment 1 by reillyg@chromium.org
, Mar 27 2018Mergedinto: 820864
Status: Duplicate (was: Available)