directional wait implemented