]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
AsyncMessenger: wait for dispatch event done
authorHaomai Wang <haomaiwang@gmail.com>
Thu, 8 Jan 2015 13:45:53 +0000 (21:45 +0800)
committerHaomai Wang <haomaiwang@gmail.com>
Thu, 15 Jan 2015 19:07:11 +0000 (03:07 +0800)
commite7db9114893bfbe58a24e14d8db742023fcbc1d8
tree30acae195db81166dd5aa1a271a3d763d2cb90d1
parente84d1344fe09a56c804f1613ab854004a3471c15
AsyncMessenger: wait for dispatch event done

In order to avoid deadlock like:
1. mark_down_all with holding lock
2. ms_dispatch_reset
3. get_connection want to get lock
4. deadlock

We signal a workerpool barrier to wait for all in-queue events done.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
src/msg/async/AsyncConnection.cc
src/msg/async/AsyncMessenger.cc
src/msg/async/AsyncMessenger.h