diff options
author | Yonit Halperin <yhalperi@redhat.com> | 2012-05-24 11:05:58 +0300 |
---|---|---|
committer | Yonit Halperin <yhalperi@redhat.com> | 2012-05-24 11:23:00 +0300 |
commit | d691602784b3592fdd4e2e54cddc29f53fafdfef (patch) | |
tree | b30d6a6a0d0b58dee8492de4fd717a34cedf6986 /server/zlib_encoder.h | |
parent | c59b2884a2f7fc953fdb263085830b65e8bdcaef (diff) |
server/red_worker: fix red_wait_pipe_item_sent
Resolves: rhbz#824384
red_wait_pipe_item_sent mistakingly returned without waiting for sending the given pipe item
when the channel wasn't blocked. As a result, we failed when we had to
destroy a surface (e.g., QXL_IO_DESTROY_ALL_SURFACES) and to release all
the drawables that are depended on it (by removing them or waiting they will be sent).
In addition, red_wait_pipe_item_sent increased and decreased the reference to the pipe item
using channel_cbs->hold_item, and channel_cbs->release_item. However,
these calls can be called only by red_channel, otherwise
display_channel_client_release_item_before_push is called twice and
leads to a double call to ring_remove(&dpi->base).
Instead ref/put_drawable_pipe_item should be called.
Diffstat (limited to 'server/zlib_encoder.h')
0 files changed, 0 insertions, 0 deletions