Displaying 4 results from an estimated 4 matches for "mhnd".
Did you mean:
hnd
2024 Apr 25
1
Big speedup in install.packages() by re-using connections
...==============================================
--- src/modules/internet/libcurl.c (revision 86484)
+++ src/modules/internet/libcurl.c (working copy)
@@ -55,6 +55,47 @@
static int current_timeout = 0;
+// The multi-handle is shared between downloads for reusing connections
+static CURLM *shared_mhnd = NULL;
+static SEXP mhnd_sentinel = NULL;
+
+static void cleanup_mhnd(SEXP ignored)
+{
+ if(shared_mhnd){
+ curl_multi_cleanup(shared_mhnd);
+ shared_mhnd = NULL;
+ }
+ curl_global_cleanup();
+}
+static void rollback_mhnd_sentinel(void* sentinel) {
+ // Failed to allocate...
2024 Apr 25
1
Big speedup in install.packages() by re-using connections
I'd like to raise this again now that 4.4 is out.
Below is a more complete patch which includes a function to properly
cleanup libcurl when R quits. Implementing this is a little tricky
because libcurl is a separate "module" in R, perhaps there is a better
way, but this works:
view: https://github.com/r-devel/r-svn/pull/166/files
patch:
2024 Sep 02
1
Big speedup in install.packages() by re-using connections
...===
> --- src/modules/internet/libcurl.c (revision 86484)
> +++ src/modules/internet/libcurl.c (working copy)
> @@ -55,6 +55,47 @@
>
> static int current_timeout = 0;
>
> +// The multi-handle is shared between downloads for reusing connections
> +static CURLM *shared_mhnd = NULL;
> +static SEXP mhnd_sentinel = NULL;
> +
> +static void cleanup_mhnd(SEXP ignored)
> +{
> + if(shared_mhnd){
> + curl_multi_cleanup(shared_mhnd);
> + shared_mhnd = NULL;
> + }
> + curl_global_cleanup();
> +}
> +static void rollback_mhn...
2018 Dec 04
3
patch to support custom HTTP headers in download.file() and url()
...r2, blen = 101;
InternetCloseHandle(wictxt->hand);
diff --git a/src/modules/internet/libcurl.c b/src/modules/internet/libcurl.c
index 669c7240ef..6bf01ef175 100644
--- a/src/modules/internet/libcurl.c
+++ b/src/modules/internet/libcurl.c
@@ -222,7 +222,6 @@ static int curlMultiCheckerrs(CURLM *mhnd)
}
return retval;
}
-
static void curlCommon(CURL *hnd, int redirect, int verify)
{
const char *capath = getenv("CURL_CA_BUNDLE");
@@ -469,10 +468,10 @@ in_do_curlDownload(SEXP call, SEXP op, SEXP
args, SEXP rho)
error(_("download.file(method = \"libcurl\&...