.\" generated by cd2nroff 0.1 from curl_multi_cleanup.md .TH curl_multi_cleanup 3 "2024-08-02" libcurl .SH NAME curl_multi_cleanup \- close down a multi session .SH SYNOPSIS .nf #include CURLMcode curl_multi_cleanup(CURLM *multi_handle); .fi .SH DESCRIPTION This function is the opposite of \fIcurl_multi_init(3)\fP. Cleans up and removes a whole multi stack. It does not free or touch any individual easy handles in any way \- they still need to be closed individually, using the usual \fIcurl_easy_cleanup(3)\fP way. The order of cleaning up should be: 1 \- \fIcurl_multi_remove_handle(3)\fP before any easy handles are cleaned up 2 \- \fIcurl_easy_cleanup(3)\fP can now be called independently since the easy handle is no longer connected to the multi handle 3 \- \fIcurl_multi_cleanup(3)\fP should be called when all easy handles are removed Passing in a NULL pointer in \fImulti_handle\fP makes this function return CURLM_BAD_HANDLE immediately with no other action. Any use of the \fBmulti_handle\fP after this function has been called and have returned, is illegal. .SH PROTOCOLS This functionality affects all supported protocols .SH EXAMPLE .nf int main(void) { CURLM *multi = curl_multi_init(); /* when the multi transfer is done ... */ /* remove all easy handles, then: */ curl_multi_cleanup(multi); } .fi .SH AVAILABILITY Added in curl 7.9.6 .SH RETURN VALUE CURLMcode type, general libcurl multi interface error code. On success, CURLM_OK is returned. .SH SEE ALSO .BR curl_easy_cleanup (3), .BR curl_easy_init (3), .BR curl_multi_get_handles (3), .BR curl_multi_init (3)