Commit c24b8460 authored by Max Kellermann's avatar Max Kellermann

lib/curl/Global: migrate from TimeoutMonitor to TimerEvent

parent 2e471dae
......@@ -96,7 +96,8 @@ private:
};
CurlGlobal::CurlGlobal(EventLoop &_loop)
:TimeoutMonitor(_loop), DeferredMonitor(_loop)
:DeferredMonitor(_loop),
timeout_event(_loop, BIND_THIS_METHOD(OnTimeout))
{
multi.SetOption(CURLMOPT_SOCKETFUNCTION, CurlSocket::SocketFunction);
multi.SetOption(CURLMOPT_SOCKETDATA, this);
......@@ -222,7 +223,7 @@ inline void
CurlGlobal::UpdateTimeout(long timeout_ms)
{
if (timeout_ms < 0) {
TimeoutMonitor::Cancel();
timeout_event.Cancel();
return;
}
......@@ -233,7 +234,7 @@ CurlGlobal::UpdateTimeout(long timeout_ms)
of 10ms. */
timeout_ms = 10;
TimeoutMonitor::Schedule(std::chrono::milliseconds(timeout_ms));
timeout_event.Schedule(std::chrono::milliseconds(timeout_ms));
}
int
......
......@@ -31,7 +31,7 @@
#define CURL_GLOBAL_HXX
#include "Multi.hxx"
#include "event/TimeoutMonitor.hxx"
#include "event/TimerEvent.hxx"
#include "event/DeferredMonitor.hxx"
class CurlSocket;
......@@ -40,13 +40,15 @@ class CurlRequest;
/**
* Manager for the global CURLM object.
*/
class CurlGlobal final : TimeoutMonitor, DeferredMonitor {
class CurlGlobal final : DeferredMonitor {
CurlMulti multi;
TimerEvent timeout_event;
public:
explicit CurlGlobal(EventLoop &_loop);
using TimeoutMonitor::GetEventLoop;
using DeferredMonitor::GetEventLoop;
void Add(CURL *easy, CurlRequest &request);
void Remove(CURL *easy);
......@@ -82,8 +84,8 @@ private:
void UpdateTimeout(long timeout_ms);
static int TimerFunction(CURLM *global, long timeout_ms, void *userp);
/* virtual methods from class TimeoutMonitor */
void OnTimeout() override;
/* callback for #timeout_event */
void OnTimeout();
/* virtual methods from class DeferredMonitor */
void RunDeferred() override;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment