並列プロキシリクエストには libcurl ハンドルの個別所有権が必要
リクエストが異なるプロキシを使う場合、libcurl ハンドルは常に単一スレッドの所有下に置いてください。
プロキシオプションは libcurl easy ハンドルに属します。あるスレッドが同じハンドルで転送を行っている間に別のスレッドからそのオプションを変更すると、ハンドルの所有権ルールに違反します。
libcurl は文書化されたルールに従う限りスレッドセーフです。1 つのハンドルへの任意の同時アクセスを内部で同期することはありません。並列ワーカーにはそれぞれ専用のハンドルを与えるか、前の利用者が終わってから所有権を移してください。
share インターフェースには別個のロック要件と制限があります。共有 easy ハンドルのあらゆる設定を各ワーカーが変更してよいという許可ではありません。
古いプロキシスレッドの例には、古い TLS ライブラリ版向けのロックコールバックが含まれることがよくあります。実際の TLS バックエンドとビルドについて現在のスレッド安全性の文書を確認してください。過去の OpenSSL コールバックを現在のアプリケーションにコピーしても、正しいハンドル所有権の代わりにはなりません。
同時使用する前に、文書化された起動要件に従ってライブラリのグローバル状態を初期化してください。公開仲介を経由して許可される公開リクエストには、無料プロキシ一覧が各ワーカーのプロキシオプションの候補を提供します。プロトコルは libcurl のビルドに合わせてください。失敗した操作ごとに、ハンドルに設定されたプロキシとその操作自身のエラー結果を保持してください。複数の転送が進行中のとき、グローバルな「現在のプロキシ」変数は識別子として不適切です。