use TVar for pending msg