as every validator function is loop-synchronized, it should no longer be necessary to use a validator lock. calling dns_validator_send(), dns_validator_cancel() or dns_validator_destroy() from a thread other than the one on which the validator is running will now cause an assertion failure; this should be fine since the validator and resolver are tightly coupled, and the fetch contexts and validators run in the same loops.