ARES_DESTROY(3)

✨ NAME ✨

Welcome to ARES_DESTROY(3) from the Library Functions Manual, bestie πŸ’… β€” this page is about destroying a resolver channel, and it is lowkey iconic cleanup content. 🌈

πŸŽ€ SYNOPSIS πŸŽ€

#include <ares.h>

void ares_destroy(ares_channel_t *channel)

That’s the whole summoning circle, no cap πŸͺ„βœ¨

πŸ’– DESCRIPTION πŸ’–

Okay so bestie, ares_destroy(3) destroys the name service channel identified by channel, freeing all memory and closing all sockets used by the channel. It’s giving β€œwe are done here” energy, fr fr πŸ§ΉπŸ’…

Then it invokes the callbacks for each pending query on the channel, passing a status of ARES_EDESTRUCTION. These calls give the callbacks a chance to clean up any state which might have been stored in their arguments. So thoughtful of them, honestly 🫢

🚨 A callback must not add new requests to a channel being destroyed. Such a request is refused: the request is not started, and its callback is invoked with a status of ARES_EDESTRUCTION so that any state attached to its argument can be released. A request made from within that notification is refused without a further notification, so that a callback which responds to failure by retrying cannot recurse without bound; its argument is not handed back. This applies as of c-ares version 1.35.0, and c-ares version 1.34.9 on the 1.34 branch. πŸ’€βœ¨

There is no ability to make this function thread-safe. No additional calls using this channel may be made once this function is called. Like, once you call it, that channel is donezo β€” do not touch it again, bestie 🫢πŸ”₯

πŸ¦‹ SEE ALSO πŸ¦‹

Go read these next if you want the full lore, iykyk πŸ‘‘πŸ“š


okay that’s the whole page, bestie πŸ’– this is ARES_DESTROY(3) from the Library Functions Manual, dated 7 December 2004 ✨ slay, bye πŸ‘‘πŸŒΈ

πŸ“¦ where this page comes from