On 2013/08/13 09:31:32, Benedikt Meurer wrote:
I don't think the new implementation actually improves the situation. The
case
for multiple producers is still not handled correctly. We need to cleanup
this
whole thing. See my comments below for suggestions how to proceed. CC'ing
Sven
for additional feedback.
Multiple producers is explicit non-goal for this implementation. The queue
is
supposed to be used as SPSC one as there is always a dedicated processing
thread
for the profiled one.
https://codereview.chromium.org/22849002/diff/2001/src/circular-queue-inl.h
File src/circular-queue-inl.h (right):
https://codereview.chromium.org/22849002/diff/2001/src/circular-queue-inl.h#newcode50
src/circular-queue-inl.h:50: }
This assumes that there is always only a single producer, but this is not
always
the case, for example in Chrome on Linux with profiled web worker
threads, and
maybe some other scenarios. We should get this right now while we're at
it.
Each web worker uses its own isolate and its own processing thread. The
implementation explicitly assumes that we have 1 to 1 relation between
profiled
threads and processing ones so there is no need for MPSC queue. The profiler
event processing thread doesn't support events from multiple threads.
https://codereview.chromium.org/22849002/
--
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.