I think this weekend I'll have some more coding time.
I'm still stuck with a question: some resolutions might require another resolution to be done. So, that is, a thread will have to notify the manager that it's done and another resolution must be fired. When that one is complete, another post-processing must be performed. And it must not block a thread.
How do I do that?
I can think of two possible cases for that: one is a simple class that instead calls upon the gethostbyname2_r() resolvers to lookup IPv4 and 6. Another is a SRV-based lookup, that might require several lookups afterwards.