Cererile proxy paralele necesită proprietate separată asupra handle-urilor libcurl
Țineți handle-urile libcurl sub proprietatea unui singur thread o dată când cererile folosesc proxy-uri diferite.
O opțiune de proxy aparține unui handle libcurl easy. Modificarea acelei opțiuni dintr-un thread în timp ce alt thread efectuează un transfer pe același handle încalcă regulile de proprietate ale handle-ului.
libcurl este sigur pentru thread-uri când regulile sale documentate sunt respectate. Nu sincronizează intern accesul simultan arbitrar la un handle. Oferiți workerilor concurenți handle-uri proprii sau transferați proprietatea doar când utilizatorul anterior a terminat.
Interfața share are cerințe de blocare și limite separate. Nu este o permisiune ca fiecare worker să modifice fiecare setare a unui handle easy partajat.
Exemplele vechi de thread-uri proxy includ adesea callback-uri de blocare pentru versiuni vechi ale bibliotecilor TLS. Verificați documentația actuală privind siguranța thread-urilor pentru backend-ul TLS și build-ul reale. Copierea callback-urilor OpenSSL istorice într-o aplicație actuală nu înlocuiește proprietatea corectă a handle-ului.
Inițializați starea globală a bibliotecii conform cerințelor de pornire documentate înainte de a o folosi concurent. Pentru cererile publice permise prin intermediari publici, lista de proxy gratuite oferă candidați pentru opțiunea de proxy a fiecărui worker; potriviți protocolul cu build-ul libcurl. Pentru fiecare operație eșuată, păstrați proxy-ul configurat al handle-ului și propriul rezultat de eroare. O variabilă globală “proxy curent” este un identificator slab când mai multe transferuri sunt în curs.