ntlm.d ntlm-wb.d \
oauth2-bearer.d \
output.d \
+ parallel-immediate.d \
+ parallel-max.d \
parallel.d \
pass.d \
- parallel-max.d \
path-as-is.d \
pinnedpubkey.d \
post301.d \
--- /dev/null
+Long: parallel-immediate
+Help: Do not wait for multiplexing (with --parallel)
+Added: 7.68.0
+See-also: parallel parallel-max
+---
+When doing parallel transfers, this option will instruct curl that it should
+rather prefer opening up more connections in parallel at once rather than
+waiting to see if new transfers can be added as multiplexed streams on another
+connection.
#endif
bool parallel;
long parallel_max;
+ bool parallel_connect;
struct OperationConfig *first;
struct OperationConfig *current;
struct OperationConfig *last; /* Always last in the struct */
{"z", "time-cond", ARG_STRING},
{"Z", "parallel", ARG_BOOL},
{"Zb", "parallel-max", ARG_STRING},
+ {"Zc", "parallel-immediate", ARG_BOOL},
{"#", "progress-bar", ARG_BOOL},
{"#m", "progress-meter", ARG_BOOL},
{":", "next", ARG_NONE},
(global->parallel_max < 1))
global->parallel_max = PARALLEL_DEFAULT;
break;
+ case 'c': /* --parallel-connect */
+ global->parallel_connect = toggle;
+ break;
}
break;
case 'z': /* time condition coming up */
"Write to file instead of stdout"},
{"-Z, --parallel",
"Perform transfers in parallel"},
+ {" --parallel-immediate",
+ "Do not wait for multiplexing (with --parallel)"},
{" --parallel-max",
"Maximum concurrency for parallel transfers"},
{" --pass <phrase>",
if(result)
break;
+ /* parallel connect means that we don't set PIPEWAIT since pipewait
+ will make libcurl prefer multiplexing */
+ (void)curl_easy_setopt(per->curl, CURLOPT_PIPEWAIT,
+ global->parallel_connect ? 0L : 1L);
(void)curl_easy_setopt(per->curl, CURLOPT_PRIVATE, per);
(void)curl_easy_setopt(per->curl, CURLOPT_XFERINFOFUNCTION, xferinfo_cb);
(void)curl_easy_setopt(per->curl, CURLOPT_XFERINFODATA, per);