fix race condition of 'both timer and connection in one active channel list'
add WeakCallback.h