Tim-Philipp Müller [Thu, 24 May 2012 12:08:16 +0000 (13:08 +0100)]
queue2: fix possible data corruption in ring buffer mode when seeking
Fix race that could cause data corruption when seeking in ring buffer
mode.
In perform_seek_to_offset(), called from the demuxer's pull_range
request, we drop the lock, tell upstream (usually a http source)
to seek to a different offset, then re-acquire the lock before we
do things to the ranges. However, between us sending the seek event
and re-acquiring the lock, the source thread might already have pushed
some data and moved along the range's writing_pos beyond the seek
offset. In that case we don't want to set the writing position back
to the requested seek position, as it would cause data to be written
to the wrong offset in the file or ring buffer.
Reproducible doing seek-emulated fast-forward/backward on 006653.
Conflicts:
plugins/elements/gstqueue2.c
Tim-Philipp Müller [Thu, 24 May 2012 12:06:47 +0000 (13:06 +0100)]
tests: fix buffer leak in queue2 unit test
Mark Nauwelaerts [Wed, 12 Sep 2012 10:23:22 +0000 (12:23 +0200)]
check: remove glib deprecation compatibility trickery
Mark Nauwelaerts [Wed, 12 Sep 2012 10:22:53 +0000 (12:22 +0200)]
check: port to the new GLib thread API
Mark Nauwelaerts [Wed, 12 Sep 2012 09:52:25 +0000 (11:52 +0200)]
tests: port to new GLib thread API
Mark Nauwelaerts [Wed, 12 Sep 2012 09:49:55 +0000 (11:49 +0200)]
tests: benchmarks: align error message with code
Tim-Philipp Müller [Tue, 11 Sep 2012 18:49:58 +0000 (19:49 +0100)]
pad: expose gst_pad_mode_get_name() and use it in baseparse
Tim-Philipp Müller [Tue, 11 Sep 2012 12:22:57 +0000 (13:22 +0100)]
scripts: update for gst-ffmpeg -> gst-libav
Now that we have a gst-libav git repository (symlinked to gst-ffmpeg).
Mark Nauwelaerts [Tue, 11 Sep 2012 15:27:03 +0000 (17:27 +0200)]
query: adjust test logic for scheduling mode with flagS
Mark Nauwelaerts [Tue, 11 Sep 2012 14:39:34 +0000 (16:39 +0200)]
query: add convenience API to query for scheduling mode and flags
Wim Taymans [Tue, 11 Sep 2012 14:29:12 +0000 (16:29 +0200)]
events: remove STREAM_CONFIG
We won't be able to implement this so it's better to move it out of the way.
Wim Taymans [Tue, 11 Sep 2012 14:09:37 +0000 (16:09 +0200)]
collectpads: clean up header indentation
Wim Taymans [Tue, 11 Sep 2012 09:34:11 +0000 (11:34 +0200)]
utils: allow NULL stream_id also when 0 srcpads
We usually first create the stream_id for the stream_start event and then add
the pad to the element. This means that this functions should work when there
are no pads on the element yet.
Tim-Philipp Müller [Mon, 10 Sep 2012 20:39:32 +0000 (21:39 +0100)]
baseparse, typefind: only activate in pull mode if upstream is seekable
Upstream might support pull mode, but only sequential pulls,
which isn't gonna do much for us.
https://bugzilla.gnome.org/show_bug.cgi?id=634927
Tim-Philipp Müller [Mon, 10 Sep 2012 19:30:32 +0000 (20:30 +0100)]
porting-to-0.11.txt: some minor fixes
Tim-Philipp Müller [Mon, 10 Sep 2012 15:52:46 +0000 (16:52 +0100)]
sample: free info structure with sample if there is one and fix copy with NULL info structure
Mark Nauwelaerts [Mon, 10 Sep 2012 10:20:15 +0000 (12:20 +0200)]
memory: add padding to GstMapInfo
Mark Nauwelaerts [Mon, 10 Sep 2012 10:12:02 +0000 (12:12 +0200)]
libs: adjust comment style
Mark Nauwelaerts [Mon, 10 Sep 2012 10:11:23 +0000 (12:11 +0200)]
gst: remove some defunct commented code
Wim Taymans [Mon, 10 Sep 2012 10:00:22 +0000 (12:00 +0200)]
docs: improve porting doc
Wim Taymans [Mon, 10 Sep 2012 08:08:09 +0000 (10:08 +0200)]
tests: disable deprecation warnings
define GLIB_DISABLE_DEPRECATION_WARNINGS earlier so that it is defined before
the glib headers are loaded or else we trip over the GValueArray deprecations in
gst-inspect.c.
Tim-Philipp Müller [Fri, 7 Sep 2012 00:02:10 +0000 (01:02 +0100)]
controller: fix direct control binding double -> int conversion
Round properly to nearest integer. Fixes controller
unit test on PowerPC G4.
Tim-Philipp Müller [Thu, 6 Sep 2012 14:06:08 +0000 (15:06 +0100)]
examples: fix bus/fd leak in hello world example
https://bugzilla.gnome.org/show_bug.cgi?id=683470
Tim-Philipp Müller [Wed, 5 Sep 2012 18:55:10 +0000 (19:55 +0100)]
gst-element-check.m4: fix action-if-found and not-found invocation
Arguments got shifted back by one.
Mark Nauwelaerts [Wed, 5 Sep 2012 13:37:13 +0000 (15:37 +0200)]
collectpads: handle GAP event
Wim Taymans [Tue, 4 Sep 2012 10:13:11 +0000 (12:13 +0200)]
basesink: wait_eos -> wait_event
Fix a FIXME. Now we can also pass the GAP event to the subclass.
Tim-Philipp Müller [Mon, 3 Sep 2012 17:45:03 +0000 (18:45 +0100)]
examples: update Makefile.am android bits in controller example
Should fix build failure reported on IRC.
Wim Taymans [Thu, 30 Aug 2012 17:15:42 +0000 (19:15 +0200)]
pad: check sticky events also after pad block
Recheck for sticky events after doing a pad block because the pad block could
have caused a relink and then we need to resend the events to the newly linked
pad.
Fixes things like switching of visualisations.
Tim-Philipp Müller [Sun, 2 Sep 2012 01:04:14 +0000 (02:04 +0100)]
baseparse: update for gst_message_new_duration -> _duration_changed()
Tim-Philipp Müller [Sun, 2 Sep 2012 00:17:44 +0000 (01:17 +0100)]
message: rename GST_MESSAGE_DURATION -> GST_MESSAGE_DURATION_CHANGED
The duration should be re-queried via a query using the
normal path, we don't want applications to use the value
from the message itself, since it might no match what a
duration query done from the sink upstream might yield.
Also disables duration caching in GstBin. It should be
added back again at some point.
Tim-Philipp Müller [Sat, 1 Sep 2012 22:54:23 +0000 (23:54 +0100)]
configure: add reminder to remove GST_UNSTABLE_API stuff before 1.0.0
Tim-Philipp Müller [Sat, 1 Sep 2012 17:06:58 +0000 (18:06 +0100)]
gst-element-check.m4: rename AM_GST_ELEMENT_CHECK to GST_ELEMENT_CHECK
And allow passing of a minimum version (if not needed, pass 1.0).
https://bugzilla.gnome.org/show_bug.cgi?id=682968
Tim-Philipp Müller [Sat, 1 Sep 2012 16:50:14 +0000 (17:50 +0100)]
tests: add check for gst-inspect --exists functionality
Tim-Philipp Müller [Sat, 1 Sep 2012 16:47:58 +0000 (17:47 +0100)]
tools: add --exists and --atleast-version option to gst-inspect
For checking if an element exists with a given minimum version.
Will use that in our new GST_ELEMENT_CHECK m4 macro.
https://bugzilla.gnome.org/show_bug.cgi?id=682968
Tim-Philipp Müller [Sat, 1 Sep 2012 16:32:04 +0000 (17:32 +0100)]
pluginfeature: disable version mangling for post-1.0.0 release
Just in case we don't grep for FIXME 1.0 before the release.
Jan Schmidt [Fri, 31 Aug 2012 18:31:45 +0000 (11:31 -0700)]
basesink: Make GAP events actually trigger preroll
Slightly hacky approach needing refinement
Jan Schmidt [Fri, 31 Aug 2012 13:25:22 +0000 (06:25 -0700)]
gstpad: make some debug statements more verbose
Jan Schmidt [Fri, 31 Aug 2012 13:23:53 +0000 (06:23 -0700)]
ghostpad: Make some debugging more verbose
Also, remove an unnecessary #include in input-selector
Jan Schmidt [Tue, 28 Aug 2012 22:44:48 +0000 (15:44 -0700)]
GstSegment: Fix doc description string last_stop->position
Arnaud Vrac [Thu, 30 Aug 2012 18:47:57 +0000 (19:47 +0100)]
inputselector: fix clock leak
https://bugzilla.gnome.org/show_bug.cgi?id=682997
Tim-Philipp Müller [Wed, 29 Aug 2012 21:57:02 +0000 (22:57 +0100)]
tools: output gst-inspect errors to stderr
Alban Browaeys [Tue, 28 Aug 2012 05:39:50 +0000 (07:39 +0200)]
value: fix crash serialising a 0 flags value when there's no name for it
Fixes segfault when doing gst-launch-1.0 -v -m camerabin
(encodebin notifies a 0 value for its "flag" property).
https://bugzilla.gnome.org/show_bug.cgi?id=682958
Tim-Philipp Müller [Fri, 24 Aug 2012 22:14:57 +0000 (23:14 +0100)]
gst: log performance warning debug message if glib emulates atomic ops
Lionel Landwerlin [Thu, 23 Aug 2012 12:51:27 +0000 (13:51 +0100)]
gst: use configure-detected or externally provided glib-mkenums
To ease cross-compilation.
https://bugzilla.gnome.org/show_bug.cgi?id=677620
Stefan Sauer [Wed, 22 Aug 2012 11:29:34 +0000 (13:29 +0200)]
Automatic update of common submodule
From 668acee to 4f962f7
Stefan Sauer [Wed, 22 Aug 2012 11:14:56 +0000 (13:14 +0200)]
configure: bump gtk-doc req to 1.12 (mar-2009)
This allows us to e.g. unconditionally use gtkdoc-rebase.
Wim Taymans [Tue, 21 Aug 2012 11:30:52 +0000 (13:30 +0200)]
memory: add _make_writable
Tim-Philipp Müller [Mon, 20 Aug 2012 23:03:37 +0000 (00:03 +0100)]
docs: mention some media type changes in porting-to-0.11.txt doc
Tim-Philipp Müller [Mon, 20 Aug 2012 12:51:05 +0000 (13:51 +0100)]
docs: minor update to porting doc for child proxy lookup method
And a typo fix.
Wim Taymans [Mon, 20 Aug 2012 09:31:51 +0000 (11:31 +0200)]
allocator: make a copy with the same alignment
When making a copy of the memory allocated from the default memory allocator,
make sure the new copy has the same alignment as the original memory.
See https://bugzilla.gnome.org/show_bug.cgi?id=680796
Tim-Philipp Müller [Sun, 19 Aug 2012 16:51:00 +0000 (17:51 +0100)]
baseparse: make seeking in DEFAULT format work if the subclass can convert for us
We only deal in TIME format ourselves, but if the subclass can handle
converting other formats into TIME format, we can support that too.
Fixes seeking in DEFAULT (sample) format with flacparse,
and the flacdec unit test.
Tim-Philipp Müller [Sat, 18 Aug 2012 20:42:23 +0000 (21:42 +0100)]
tools: minor fixes to gst-launch man page
Stefan Sauer [Fri, 17 Aug 2012 10:23:50 +0000 (12:23 +0200)]
preset: implement child_proxy support
Elements such as the GstIirEqualizerNBands would so far not store the properties
of their children. Now we also grab the properties of child elements and try to
restore them.
Edward Hervey [Tue, 14 Aug 2012 16:44:38 +0000 (18:44 +0200)]
inputselector: Wait for other streams to advance on unselected pads
Otherwise we end up dropping a lot of data in the case where data starts
arriving on the non-selected pad, resulting in big gaps in stream switching
Edward Hervey [Tue, 14 Aug 2012 16:43:54 +0000 (18:43 +0200)]
inputselector: More debug statements
Edward Hervey [Tue, 14 Aug 2012 16:42:31 +0000 (18:42 +0200)]
inputselector: Don't forward stream-start sticky events
Only one STREAM_START event should be let through, else it will
confuse downstream elements that think a new stream is starting
whereas in fact we are just switching to a different input.
In the future we might want to let them through but with the same
sequence number.
Sebastian Dröge [Tue, 14 Aug 2012 13:46:35 +0000 (15:46 +0200)]
docs: Add new basesrc/basetransform API to the docs
Víctor Manuel Jáquez Leal [Tue, 7 Aug 2012 15:38:53 +0000 (17:38 +0200)]
basetransform: getters for pool and allocator
Sometimes a transform filter would need the buffer pool or the memory
allocator negotiated by the base class, for example, for querying different
parameters, such as a bigger number of buffers to allocate by the buffer pool.
This patch expose a two getters accessors: one for the buffer pool and the
other for the memory allocator.
Víctor Manuel Jáquez Leal [Tue, 7 Aug 2012 15:35:48 +0000 (17:35 +0200)]
basesrc: getters for pool and allocator
Sometimes the sources would use the buffer pool or the memory allocator for
something else than just allocating output buffers; for example, querying for
different parameters, such as a bigger number of buffers to allocate by the
pool.
This patch expose a two getters accessors: one for the buffer pool and the
other for the memory allocator.
Tim-Philipp Müller [Mon, 13 Aug 2012 23:39:18 +0000 (00:39 +0100)]
registry: remove some unused and in their current form pointless API
Not so useful: just adds/reads stuff from an internal GList without
actually doing anything with those paths, so remove for now:
gst_registry_add_path
gst_registry_get_path_list
https://bugzilla.gnome.org/show_bug.cgi?id=608841
Tim-Philipp Müller [Sun, 12 Aug 2012 12:27:06 +0000 (13:27 +0100)]
parse: fix up for gst_child_proxy_lookup() only working on child proxy interfaces
https://bugzilla.gnome.org/show_bug.cgi?id=681681
Tim-Philipp Müller [Sun, 12 Aug 2012 12:24:18 +0000 (13:24 +0100)]
childproxy: make gst_child_proxy_lookup() a proper GstChildProxy method
No longer accept any old GObjects. This makes things nicer for
bindings. If a utility function that handles both nicely
is deemed worthwhile, we can still add one to gstutils.
https://bugzilla.gnome.org/show_bug.cgi?id=681681
Tim-Philipp Müller [Sun, 12 Aug 2012 23:01:16 +0000 (00:01 +0100)]
value: when serialising arrays or lists, handle types we can't serialise more gracefully
https://bugzilla.gnome.org/show_bug.cgi?id=681322
Tim-Philipp Müller [Sun, 12 Aug 2012 18:39:46 +0000 (19:39 +0100)]
consistencychecker: add some more details to failure messages
Mention pad where the problem occured, and the event name.
Tim-Philipp Müller [Sun, 12 Aug 2012 17:36:09 +0000 (18:36 +0100)]
tests: fix collectpads test
After an EOS we must send a FLUSH_STOP event if
we want to send data again.
Tim-Philipp Müller [Sun, 12 Aug 2012 17:31:13 +0000 (18:31 +0100)]
event: fix leak in gst_event_parse_stream_start()
gst_structure_id_get() will make a copy of the string
extracted, but we're assigning it to a const gchar *.
Tim-Philipp Müller [Sun, 12 Aug 2012 15:40:03 +0000 (16:40 +0100)]
tests: make pipeline test valgrind clean
Tim-Philipp Müller [Sun, 12 Aug 2012 15:37:02 +0000 (16:37 +0100)]
tests: fix pipeline unit test
Which was disabled because it failed.
Tim-Philipp Müller [Sun, 12 Aug 2012 14:48:20 +0000 (15:48 +0100)]
scripts: fix unterminated quoted string in create-uninstalled-setup.sh
Tim-Philipp Müller [Sat, 11 Aug 2012 23:12:56 +0000 (00:12 +0100)]
docs: mention gst_video_format_parse_caps() in porting guide
Tim-Philipp Müller [Sat, 11 Aug 2012 21:19:32 +0000 (22:19 +0100)]
docs: fix up docs a bit
Tim-Philipp Müller [Sat, 11 Aug 2012 21:18:13 +0000 (22:18 +0100)]
childproxy: fix up g-i annotation for _lookup() paramspec return value
No ref is returned here.
Tim-Philipp Müller [Sat, 11 Aug 2012 21:17:35 +0000 (22:17 +0100)]
win32: update .def file for new buffer functions
Tim-Philipp Müller [Fri, 10 Aug 2012 21:58:56 +0000 (22:58 +0100)]
baseparse: fix reverse playback with upstream demuxers that support it
Don't just return FALSE for seek events with negative rates when
operating in push mode. An upstream demuxer may support this just
fine, so if we're not operating in pull mode always check upstream
first if it can handle the seek event. This fixes reverse playback
where the upstream demuxer supports it (e.g. with qtdemux). The
same code would work fine in 0.10, because baseparse will just
call the default pad event handler if FALSE was returned from the
baseparse event handler, and the pad event handler will just
forward it upstream. In 0.11 the baseclass or subclass is
responsible for chaining up to the parent class or forwarding the
event upstream in any case.
Disable reverse playback in pull mode for now, there seems to
be something going wrong with the segment configuration in that
case.
Thiago Santos [Sat, 4 Aug 2012 14:48:52 +0000 (11:48 -0300)]
basetransform: do not error on not-negotiated
Don't error out too early and let upstream decide if it can
workaround a not-negotiated problem
https://bugzilla.gnome.org/show_bug.cgi?id=681198
Thiago Santos [Sat, 4 Aug 2012 14:48:13 +0000 (11:48 -0300)]
basesrc: retry on not-negotiate if a reconfigure is pending
Before erroring out on not-negotiated returns, check if the pad
has the reconfigure flag set and retry.
https://bugzilla.gnome.org/show_bug.cgi?id=681198
Thiago Santos [Sat, 4 Aug 2012 14:42:05 +0000 (11:42 -0300)]
pad: add gst_pad_needs_reconfigure
Add an alternative version of gst_pad_check_reconfigure that doesn't
clear the reconfigure flag.
Useful for increasing error resilience without duplicating the
reconfigure code in pad task functions.
API: gst_pad_needs_reconfigure
https://bugzilla.gnome.org/show_bug.cgi?id=681198
Evan Nemerson [Sun, 29 Jul 2012 22:44:45 +0000 (15:44 -0700)]
pad: add GST_PAD_LINK_CHECK_DEFAULT to GstPadLinkCheck
This allows introspection-based bindings to access
Gst.PadLinkCheck.DEFAULT instead of
Gst.PAD_LINK_CHECK_DEFAULT.
https://bugzilla.gnome.org/show_bug.cgi?id=678301
Evan Nemerson [Sun, 29 Jul 2012 21:57:41 +0000 (14:57 -0700)]
buffer: mark gst_buffer_wrapped* data as array
https://bugzilla.gnome.org/show_bug.cgi?id=678301
Evan Nemerson [Tue, 24 Jul 2012 20:26:00 +0000 (13:26 -0700)]
introspection: fix some warnings generated by g-ir-scanner.
https://bugzilla.gnome.org/show_bug.cgi?id=678301
Evan Nemerson [Tue, 31 Jul 2012 04:46:18 +0000 (21:46 -0700)]
buffer: convert gst_buffer_* macros to functions
GObject Introspection does not support macros.
This is needed for bindings. We can still add back
macros or inline functions again later if we think
it's worth it.
https://bugzilla.gnome.org/show_bug.cgi?id=678301
Tim-Philipp Müller [Fri, 10 Aug 2012 12:50:41 +0000 (13:50 +0100)]
netclientclock: fix printf format in debug message
Wim Taymans [Fri, 10 Aug 2012 10:23:03 +0000 (12:23 +0200)]
bufferpool: fix max_buffers handling
When max_buffers > 0 and the pool is empty, actually try to allocate more
buffers up to the max_buffers limit.
We need to add a counter for this to count how many buffers we allocated and
check this against the max_buffers limit.
Reorganise and clean up some code.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681153
Tim-Philipp Müller [Fri, 10 Aug 2012 08:19:25 +0000 (09:19 +0100)]
netclientclock: simplify by using g_socket_condition_timed_wait()
No need to use a custom main context and custom timeout sources,
just use g_socket_condition_timed_wait() instead, which was added
for exactly this case.
Also seems to help with the unit test deadlocking with glib 2.33.x
https://bugzilla.gnome.org/show_bug.cgi?id=681575
Tim-Philipp Müller [Thu, 9 Aug 2012 18:15:29 +0000 (19:15 +0100)]
gstobject: fix double string escaping in gst_object_default_deep_notify()
Make output of gst-launch -v readable again.
last-message = "event\ \ \ \*\*\*\*\*\*\*\ \(fakesink0:sink\)\ E\ \(type:\ tag\ \(20510\)\,\ GstTagList-stream\,\ taglist\=\(taglist\)\"taglist\\\,\\\ video-codec\\\=\\\(string\\\)H264\\\,\\\
minimum-bitrate\\\=\\\(uint\\\)636611\\\,\\\ bitrate\\\=\\\(uint\\\)980729\\\,\\\ maximum-bitrate\\\=\\\(uint\\\)1116707\\\;\"\;\)\ 0x15bc760"
vs.
last-message = event ******* (fakesink0:sink) E (type: tag (20510), GstTagList-stream, taglist=(taglist)"taglist\,\ video-codec\=\(string\)H264\,\ minimum-bitrate\=\(uint\)856039\,\ bitrate
\=\(uint\)1019748\,\ maximum-bitrate\=\(uint\)1116707\;";) 0x11149e0
Wim Taymans [Thu, 9 Aug 2012 14:18:59 +0000 (16:18 +0200)]
miniobject: check writability
fix the writability check for miniobjects. We should check the shared counter.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681450
Sebastian Dröge [Wed, 8 Aug 2012 14:08:44 +0000 (16:08 +0200)]
allocator: Set the alignment at the correct place in GstAllocationParams
Tim-Philipp Müller [Wed, 8 Aug 2012 15:18:15 +0000 (16:18 +0100)]
Back to development
Tim-Philipp Müller [Wed, 8 Aug 2012 14:05:08 +0000 (15:05 +0100)]
Release 0.11.93
Tim-Philipp Müller [Wed, 8 Aug 2012 13:49:23 +0000 (14:49 +0100)]
tests: remove silly test_fail_abstract_new check
Our check would make sure that GLib segfaults when
someone tries to instantiate an abstract type, which
is an extremely useful thing to check for.
In newer GLibs this is fixed and we get an abort with
a g_error() now it seems, so let's just remove this
check entirely.
Tim-Philipp Müller [Wed, 8 Aug 2012 08:53:26 +0000 (09:53 +0100)]
examples: don't put things with side effects inside g_assert()
They will be defined away to NOOPs otherwise in release builds.
Tim-Philipp Müller [Wed, 8 Aug 2012 08:13:38 +0000 (09:13 +0100)]
win32: update for stream-id API additions
Tim-Philipp Müller [Tue, 7 Aug 2012 23:54:49 +0000 (00:54 +0100)]
parse: fix for new GstChildProxy::child-added signal callback signature
Fixes crash with gst-launch-1.0 uridecodebin uri=... suburi=... ! ..
Sebastian Dröge [Tue, 7 Aug 2012 08:46:17 +0000 (10:46 +0200)]
bus: Add allow-none to the function argument of gst_bus_set_sync_handler()
https://bugzilla.gnome.org/show_bug.cgi?id=681139
Руслан Ижбулатов [Mon, 6 Aug 2012 12:33:57 +0000 (16:33 +0400)]
docs: Make sure scanner gets required libraries
Tim-Philipp Müller [Mon, 6 Aug 2012 19:08:07 +0000 (20:08 +0100)]
consistencychecker: print which event we received before stream-start
Tim-Philipp Müller [Mon, 6 Aug 2012 19:04:09 +0000 (20:04 +0100)]
basesrc: don't try to answer URI queries with NULL URIs
Should make unit tests in -base that use appsrc a bit happier.
Sebastian Dröge [Sun, 29 Jul 2012 12:25:34 +0000 (14:25 +0200)]
event: Update for stream-start event API changes
Sebastian Dröge [Sat, 28 Jul 2012 06:37:00 +0000 (08:37 +0200)]
event: Add new stream-id field to the stream-start event
This is supposed to allow uniquely identifying a single stream.
Edward Hervey [Fri, 27 Jul 2012 15:41:43 +0000 (17:41 +0200)]
inputselector: Use the first created pad by default
This guarantees a bit more consistency in which input stream will
be selected by default. It would previously be the first pad on which
an event/buffer/query was received ... which was racy and non-predictable.