use full bit to avoid lost updates to condition variable