public void Execute()
        {
            // flatten
            var payloads = _received.GetOrCreate();
            var result = new int[payloads.Count][];

            var count = 0;
            foreach (var entry in payloads)
            {
                result[count++] = entry;
            }

            _isDispatchWaiting.Value = false;
            payloads.Clear();
            _dispatchListener.Dispatched(result);
        }
        public void Execute()
        {
            var local = LocalData;
            // flatten
            LinkedList <int[]> payloads = local.Received;

            int[][] result = new int[payloads.Count][];

            int count = 0;

            foreach (int[] entry in payloads)
            {
                result[count++] = entry;
            }

            local.IsDispatchWaiting = false;
            payloads.Clear();
            dispatchListener.Dispatched(result);
        }