curl_multi_remove_handle.3 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. .\" **************************************************************************
  2. .\" * _ _ ____ _
  3. .\" * Project ___| | | | _ \| |
  4. .\" * / __| | | | |_) | |
  5. .\" * | (__| |_| | _ <| |___
  6. .\" * \___|\___/|_| \_\_____|
  7. .\" *
  8. .\" * Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al.
  9. .\" *
  10. .\" * This software is licensed as described in the file COPYING, which
  11. .\" * you should have received as part of this distribution. The terms
  12. .\" * are also available at https://curl.se/docs/copyright.html.
  13. .\" *
  14. .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
  15. .\" * copies of the Software, and permit persons to whom the Software is
  16. .\" * furnished to do so, under the terms of the COPYING file.
  17. .\" *
  18. .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
  19. .\" * KIND, either express or implied.
  20. .\" *
  21. .\" * SPDX-License-Identifier: curl
  22. .\" *
  23. .\" **************************************************************************
  24. .TH curl_multi_remove_handle 3 "6 March 2002" "libcurl 7.9.5" "libcurl Manual"
  25. .SH NAME
  26. curl_multi_remove_handle - remove an easy handle from a multi session
  27. .SH SYNOPSIS
  28. .nf
  29. #include <curl/curl.h>
  30. CURLMcode curl_multi_remove_handle(CURLM *multi_handle, CURL *easy_handle);
  31. .fi
  32. .SH DESCRIPTION
  33. Removes a given \fIeasy_handle\fP from the \fImulti_handle\fP. This will make
  34. the specified easy handle be removed from this multi handle's control.
  35. When the easy handle has been removed from a multi stack, it is again
  36. perfectly legal to invoke \fIcurl_easy_perform(3)\fP on this easy handle.
  37. Removing an easy handle while being used is perfectly legal and will
  38. effectively halt the transfer in progress involving that easy handle. All
  39. other easy handles and transfers will remain unaffected.
  40. It is fine to remove a handle at any time during a transfer, just not from
  41. within any libcurl callback function.
  42. .SH EXAMPLE
  43. .nf
  44. /* when an easy handle has completed, remove it */
  45. msg = curl_multi_info_read(multi_handle, &queued);
  46. if(msg) {
  47. if(msg->msg == CURLMSG_DONE) {
  48. /* a transfer ended */
  49. fprintf(stderr, "Transfer completed\\n");
  50. curl_multi_remove_handle(multi_handle, msg->easy_handle);
  51. }
  52. }
  53. .fi
  54. .SH AVAILABILITY
  55. Added in 7.9.6
  56. .SH RETURN VALUE
  57. CURLMcode type, general libcurl multi interface error code.
  58. .SH "SEE ALSO"
  59. .BR curl_multi_cleanup "(3)," curl_multi_init "(3), "
  60. .BR curl_multi_add_handle "(3) "