gecko-dev/mozglue/baseprofiler
Gerald Squelart 2af2523782 Bug 1565137 - BlocksRingBuffer is a thread-safe variable-sized circular buffer - r=gregtatum
This adds to the byte-oriented ModuloBuffer from bug 1563425:
- Thread-safety: All APIs may be called at any time from any thread.
- Structure: The buffer will be divided in "blocks" of different size, with some
  block meta-data and space for the user "entry".
- Capable of handling user resources: The user may provide a "deleter" that will
  be informed about soon-to-be-destroyed entries; so if some entries reference
  outside resources, these references may be properly released.

Note: This first implementation still only allows the user to manipulate bytes
and trivially-copyable objects (same as with the ModuloBuffer iterators). A
follow-up bug will introduce better serialization capabilities, with the aim to
eventually store everything that current Profiler Markers and their payloads
contain.

Differential Revision: https://phabricator.services.mozilla.com/D37702

--HG--
extra : moz-landing-system : lando
2019-07-16 07:57:24 +00:00
..
core Bug 1559000 - Enable/disable mozglue's AutoProfilerLabel when Base Profiler starts/stops - r=mstange 2019-07-04 04:39:08 +00:00
lul Bug 1492121 - Enclosing BaseProfiler in namespace mozilla::baseprofiler - r=njn 2019-06-06 06:20:03 +00:00
public Bug 1565137 - BlocksRingBuffer is a thread-safe variable-sized circular buffer - r=gregtatum 2019-07-16 07:57:24 +00:00
moz.build Bug 1565137 - BlocksRingBuffer is a thread-safe variable-sized circular buffer - r=gregtatum 2019-07-16 07:57:24 +00:00