use barrier msg and add timeout