Delete curl_copy_handle and CurlPool builtins
commite58bc791317a1c7c4294b0fa371562ae46e4153a
authorShaunak Kishore <kshaunak@fb.com>
Thu, 5 Aug 2021 04:01:00 +0000 (4 21:01 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Thu, 5 Aug 2021 04:02:23 +0000 (4 21:02 -0700)
treed58c6900669415adef5f0b863bf41792bf627600
parentd4c8a50001d3e6b75b051006cec96a4e73cb1916
Delete curl_copy_handle and CurlPool builtins

Summary:
cURL handles can share state as an optimization, including DNS caches and SSL IDs. Sharing state leads to thread-safety issues, especially as libcurl uses more caching to win better performance. Right now, HHVM supports three ways of explicitly constructing handles with shared state:
1. Copying a handle (I'm uncertain how much state is shared, but probably some)
1. Named process-global connection pools
1. The CurlShareHandle resource type

We don't use 1 and 2. The code for these kinds of sharing is likely wrong now as a result. Let's eliminate 1 and 2, so that CurlShareHandle is the only API that needs synchronization.

Reviewed By: ricklavoie

Differential Revision: D30109386

fbshipit-source-id: f3adf960ba3abd4d33abb995cf4b58bd8d7dc937
hphp/runtime/ext/curl/config.cmake
hphp/runtime/ext/curl/curl-pool.cpp [deleted file]
hphp/runtime/ext/curl/curl-pool.h [deleted file]
hphp/runtime/ext/curl/curl-resource.cpp
hphp/runtime/ext/curl/curl-resource.h
hphp/runtime/ext/curl/ext_curl.cpp
hphp/runtime/ext/curl/ext_curl.h
hphp/runtime/ext/curl/ext_curl.php
hphp/test/zend/good/ext/curl/tests/bug62839.php [deleted file]
hphp/test/zend/good/ext/curl/tests/bug62839.php.expectf [deleted file]
hphp/test/zend/good/ext/curl/tests/bug62839.php.runif [deleted file]