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.


Reply via email to