61 void Start(std::unique_ptr<XrdClHttp::CurlWorker> self, std::thread tid);
70 m_maintenance_period.store(maint, std::memory_order_relaxed);
78 static void ShutdownAll();
84 static std::vector<std::unique_ptr<XrdClHttp::CurlWorker>> m_workers;
86 static std::mutex m_workers_mutex;
88 std::chrono::steady_clock::time_point m_last_prefix_log;
90 std::shared_ptr<HandlerQueue> m_queue;
95 std::shared_ptr<HandlerQueue> m_continue_queue;
97 std::unordered_map<CURL*, std::pair<std::shared_ptr<CurlOperation>, std::chrono::system_clock::time_point>> m_op_map;
99 std::string m_x509_client_cert_file;
100 std::string m_x509_client_key_file;
102 const static unsigned m_max_ops{20};
103 static std::atomic<unsigned> m_maintenance_period;
106 int m_shutdown_pipe_r{-1};
107 int m_shutdown_pipe_w{-1};
109 std::mutex m_start_lock;
111 std::condition_variable m_start_complete_cv;
113 bool m_start_complete{
false};
115 std::thread m_self_tid;
119 std::atomic<uint64_t> m_conncall_timeout{};
120 std::atomic<uint64_t> m_client_timeout{};
121 std::atomic<std::chrono::system_clock::duration::rep> m_duration{};
122 std::atomic<uint64_t> m_error{};
123 std::atomic<uint64_t> m_finished{};
124 std::atomic<std::chrono::steady_clock::duration::rep> m_pause_duration{};
125 std::atomic<uint64_t> m_started{};
126 std::atomic<uint64_t> m_server_timeout{};
127 std::atomic<uint64_t> m_bytes{};
139 void OpRecord(XrdClHttp::CurlOperation &op, OpKind);
141 static std::atomic<uint64_t> m_conncall_errors;
142 static std::atomic<uint64_t> m_conncall_req;
143 static std::atomic<uint64_t> m_conncall_success;
144 static std::atomic<uint64_t> m_conncall_timeout;
146 std::atomic<std::chrono::system_clock::rep> m_last_completed_cycle;
147 std::atomic<std::chrono::system_clock::rep> m_oldest_op;
150 static std::vector<std::atomic<std::chrono::system_clock::rep>*> m_workers_last_completed_cycle;
151 static std::vector<std::atomic<std::chrono::system_clock::rep>*> m_workers_oldest_op;
152 size_t m_stats_offset{0};
153 static std::mutex m_worker_stats_mutex;
156 static struct initcontrol {