implement update barrier