diff options
author | David Herrmann <dh.herrmann@gmail.com> | 2014-03-22 18:06:38 +0100 |
---|---|---|
committer | David Herrmann <dh.herrmann@gmail.com> | 2014-03-22 18:06:38 +0100 |
commit | eb33a6f858c2cd39dcf9c2f39514c9f83ed040fe (patch) | |
tree | 6bf4d80d8f66d252574407de3b10af7011f42378 /src/libsystemd/sd-bus/test-bus-gvariant.c | |
parent | 22fdeadcc06e95fe41ac4de872ec245c0887547f (diff) |
sd-bus: add note about sd_bus_unref() recursion
In sd_bus_unref() we check for self-reference loops and destruct our
queues in case we're the only reference holders. However, we do _not_
modify our own ref-count, thus effectively causing the
message-destructions to enter with the same reference count as we did.
The only reason this doesn't cause an endless recursion (or trigger
assert(m->n_ref > 0) in sd_bus_message_unref()) is the fact that we
decrease queue-counters _before_ calling _unref(). That's not obvious at
all, so add a big fat note in bus_reset_queues() to everyone touching that
code.
Diffstat (limited to 'src/libsystemd/sd-bus/test-bus-gvariant.c')
0 files changed, 0 insertions, 0 deletions