Hi Soren

I am looking at  Debug::SetMessageHandler2  function and I see some
controversy about its status.

It uses HandleScope, that means it requires to be called from a regular V8
thread with locker. On the other hand  DebuggerAgent::Run  calls this
function from its thread without acquiring any lockers. It starts to fail if
you activate Lockers yourself, probably nobody has tried it yet.

I tried to remove HandleScope, thinking that this function should not touch
any sensitive part of V8 at all and thus being available from any thread
without lockers, but tests demonstrate the opposite:


11 Handle() /home/prybin/src-v8-3/src/handles-inl.h:42 0x080b5253
10 v8::internal::CodeStub::GetCode()
/home/prybin/src-v8-3/src/code-stubs.cc:114 0x081141ba
9 BreakLocationIterator() /home/prybin/src-v8-3/src/debug.cc:76
0x08126ecf
8 v8::internal::Debug::ClearAllBreakPoints()
/home/prybin/src-v8-3/src/debug.cc:983 0x08126ff7
7 v8::internal::Debugger::UnloadDebugger()
/home/prybin/src-v8-3/src/debug.cc:1997 0x0812705b
6 v8::internal::Debugger::ListenersChanged()
/home/prybin/src-v8-3/src/debug.cc:2221 0x081271d6
5 v8::internal::Debugger::SetMessageHandler()
/home/prybin/src-v8-3/src/debug.cc:2198 0x081271ff
4 v8::Debug::SetMessageHandler2() /home/prybin/src-v8-3/src/api.cc:3675
0x080f0b87
3 TestDebuggerUnload() /home/prybin/src-v8-3/test/cctest/test-debug.cc:4528
0x080af892

My sample appication "lineprocessor" depends on this, so I guess we need
some fixing here.

Peter

-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to