Main process hangs in PowerManager::NotifyPowerStateChange

Having problems with building or using CEF's C/C++ APIs? This forum is here to help. Please do not post bug reports or feature requests here.

Main process hangs in PowerManager::NotifyPowerStateChange

Postby madkris » Thu May 13, 2021 3:49 am

Hi!
We have CEF (84.4.1+gfdc7504+chromium-84.0.4147.105) embedded inside QT4.8 widget.
We do call CefDoMessageLoopWork every 50 ms in windows timer set by SetTimer method.
What is more we have CefDoMessageLoopWork call inside OnScheduleMessagePumpWork.

Our configuration (CefSettings):
Code: Select all
settings->multi_threaded_message_loop = false;
settings->external_message_pump = true;


After some tests it seems that bolded lines are places where same SRW lock is acquired.
Is this our error or some bug?

ntdll.dll!NtWaitForAlertByThreadId() Unknown
ntdll.dll!RtlAcquireSRWLockExclusive() Unknown
libcef.dll!base::internal::LockImpl::Lock() Line 37 C++
[Inline Frame] libcef.dll!base::Lock::Acquire() Line 28 C++
> [Inline Frame] libcef.dll!base::internal::BasicAutoLock<base::Lock>::BasicAutoLock(base::Lock & lock={...}) Line 86 C++
libcef.dll!base::ObserverListThreadSafe<base::MemoryPressureListener>::NotifyWrapper(base::MemoryPressureListener * observer=0x0000016dd9a62b70, const base::ObserverListThreadSafe<base::MemoryPressureListener>::NotificationData & notification={...}) Line 224 C++
[Inline Frame] libcef.dll!base::OnceCallback<void ()>::Run() Line 99 C++
libcef.dll!base::TaskAnnotator::RunTask(const char * trace_event_name=0x00007ffaaad1d4b2, base::PendingTask * pending_task=0x0000016dcab34b10) Line 142 C++
libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow * continuation_lazy_now=0x0000001e339eb078) Line 330 C++
libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() Line 256 C++
[Inline Frame] libcef.dll!`anonymous namespace'::MessagePumpExternal::DirectRunWork(base::MessagePump::Delegate * delegate=0x0000016db0f11788, base::TimeTicks * next_run_time) Line 69 C++
libcef.dll!`anonymous namespace'::MessagePumpExternal::Run(base::MessagePump::Delegate * delegate=0x0000016db0f11788) Line 38 C++
libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool application_tasks_allowed=true, base::TimeDelta timeout) Line 451 C++
libcef.dll!base::RunLoop::Run() Line 126 C++
libcef.dll!CefDoMessageLoopWork() Line 370 C++
rvl_toolkit.dll!CefCppToCRefCounted<class CefPrintHandlerCppToC,class CefPrintHandler,struct _cef_print_handler_t>::Wrap(class scoped_refptr<class CefPrintHandler>) Unknown
libcef.dll!base::sequence_manager::internal::TaskQueueImpl::PostImmediateTaskImpl(base::sequence_manager::internal::PostedTask task, base::sequence_manager::internal::TaskQueueImpl::CurrentThread current_thread) Line 337 C++
libcef.dll!base::sequence_manager::internal::TaskQueueImpl::PostTask(base::sequence_manager::internal::PostedTask task) Line 240 C++
libcef.dll!base::sequence_manager::internal::TaskQueueImpl::GuardedTaskPoster::PostTask(base::sequence_manager::internal::PostedTask task) Line 78 C++
libcef.dll!base::sequence_manager::internal::TaskQueueImpl::TaskRunner::PostDelayedTask(const base::Location & location, base::OnceCallback<void ()> callback={...}, base::TimeDelta delay={...}) Line 93 C++
libcef.dll!base::TaskRunner::PostTask(const base::Location & from_here, base::OnceCallback<void ()> task={...}) Line 45 C++
libcef.dll!base::ObserverListThreadSafe<base::PowerObserver>::Notify<void (base::PowerObserver::*)(bool),bool &>(const base::Location & from_here={...}, void(base::PowerObserver::*)(bool) m, bool & params) Line 164 C++
libcef.dll!base::PowerMonitor::NotifyPowerStateChange(bool battery_in_use=false) Line 63 C++
[Inline Frame] libcef.dll!base::ProcessPowerEventHelper(base::PowerMonitorSource::PowerEvent event) Line 17 C++
[Inline Frame] libcef.dll!base::`anonymous namespace'::ProcessWmPowerBroadcastMessage(unsigned __int64 event_id) Line 52 C++
libcef.dll!base::PowerMonitorDeviceSource::PowerMessageWindow::WndProcThunk(HWND__ * hwnd, unsigned int message, unsigned __int64 wparam, __int64 lparam) Line 113 C++
libcef.dll!base::win::WrappedWindowProc<&base::PowerMonitorDeviceSource::PowerMessageWindow::WndProcThunk>(HWND__ * hwnd, unsigned int message, unsigned __int64 wparam, __int64 lparam) Line 78 C++

madkris
Newbie
 
Posts: 1
Joined: Thu May 13, 2021 2:59 am

Return to Support Forum

Who is online

Users browsing this forum: Google [Bot] and 37 guests