Równoległe żądania przez proxy wymagają odrębnego posiadania uchwytów libcurl
Utrzymuj uchwyty libcurl pod posiadaniem jednego wątku naraz, gdy żądania używają różnych proxy.
Opcja proxy należy do uchwytu libcurl easy. Zmiana tej opcji z jednego wątku, podczas gdy inny wątek wykonuje transfer na tym samym uchwycie, narusza reguły posiadania uchwytu.
libcurl jest bezpieczny dla wątków, gdy przestrzega się jego udokumentowanych reguł. Nie synchronizuje wewnętrznie dowolnego jednoczesnego dostępu do jednego uchwytu. Daj współbieżnym pracownikom własne uchwyty albo przekazuj posiadanie dopiero, gdy poprzedni użytkownik skończył.
Interfejs share ma odrębne wymagania dotyczące blokowania i ograniczenia. Nie jest to pozwolenie, by każdy pracownik zmieniał każde ustawienie współdzielonego uchwytu easy.
Stare przykłady wątków proxy często zawierają wywołania zwrotne blokowania dla starych wersji bibliotek TLS. Sprawdź aktualną dokumentację bezpieczeństwa wątków dla rzeczywistego backendu TLS i kompilacji. Kopiowanie historycznych wywołań zwrotnych OpenSSL do bieżącej aplikacji nie zastępuje prawidłowego posiadania uchwytu.
Zainicjuj globalny stan biblioteki zgodnie z udokumentowanymi wymaganiami uruchamiania, zanim użyjesz jej współbieżnie. Dla publicznych żądań dozwolonych przez publicznych pośredników bezpłatna lista proxy oferuje kandydatów do opcji proxy każdego pracownika; dopasuj protokół do kompilacji libcurl. Dla każdej nieudanej operacji zachowaj skonfigurowane proxy uchwytu i jego własny wynik błędu. Globalna zmienna “bieżące proxy” to słaby identyfikator, gdy trwa kilka transferów.