// w.matchResult must be nil (can't call wake twice).
// w must not be in queues anymore.
softassert.That(logger, w.matchResult == nil, "wake called twice")
softassert.That(logger, w.matchHeapIndex < 0, "wake called but still in heap")
w.matchResult = res
w.matchCond.Signal()
}
// call with matcherData.lock held