experimental emit either
first try at wait-for
improve emit sig