Skip to content

Commit

Permalink
wssession: use rtimer (#48125)
Browse files Browse the repository at this point in the history
  • Loading branch information
jkarneges authored Feb 18, 2025
1 parent e893986 commit 5dac624
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 18 deletions.
1 change: 0 additions & 1 deletion src/handler/httpsession.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@

using Connection = boost::signals2::scoped_connection;

class QTimer;
class ZhttpManager;
class StatsManager;
class PublishItem;
Expand Down
16 changes: 8 additions & 8 deletions src/handler/wssession.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2020 Fanout, Inc.
* Copyright (C) 2024 Fastly, Inc.
* Copyright (C) 2024-2025 Fastly, Inc.
*
* This file is part of Pushpin.
*
Expand All @@ -23,9 +23,9 @@

#include "wssession.h"

#include <QTimer>
#include <QDateTime>
#include "log.h"
#include "rtimer.h"
#include "defercall.h"
#include "filter.h"
#include "publishitem.h"
Expand All @@ -43,17 +43,17 @@ WsSession::WsSession(QObject *parent) :
inProcessPublishQueue(false),
closed(false)
{
expireTimer = new QTimer(this);
expireTimer = new RTimer;
expireTimer->setSingleShot(true);
connect(expireTimer, &QTimer::timeout, this, &WsSession::expireTimer_timeout);
expireTimer->timeout.connect(boost::bind(&WsSession::expireTimer_timeout, this));

delayedTimer = new QTimer(this);
delayedTimer = new RTimer;
delayedTimer->setSingleShot(true);
connect(delayedTimer, &QTimer::timeout, this, &WsSession::delayedTimer_timeout);
delayedTimer->timeout.connect(boost::bind(&WsSession::delayedTimer_timeout, this));

requestTimer = new QTimer(this);
requestTimer = new RTimer;
requestTimer->setSingleShot(true);
connect(requestTimer, &QTimer::timeout, this, &WsSession::requestTimer_timeout);
requestTimer->timeout.connect(boost::bind(&WsSession::requestTimer_timeout, this));
}

WsSession::~WsSession()
Expand Down
16 changes: 7 additions & 9 deletions src/handler/wssession.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2020 Fanout, Inc.
* Copyright (C) 2024 Fastly, Inc.
* Copyright (C) 2024-2025 Fastly, Inc.
*
* This file is part of Pushpin.
*
Expand Down Expand Up @@ -34,14 +34,14 @@
#include <boost/signals2.hpp>

// each session can have a bunch of timers:
// 3 misc timers
// filter timers
#define TIMERS_PER_WSSESSION (0 + TIMERS_PER_MESSAGEFILTERSTACK)
#define TIMERS_PER_WSSESSION (3 + TIMERS_PER_MESSAGEFILTERSTACK)

using Signal = boost::signals2::signal<void()>;
using Connection = boost::signals2::scoped_connection;

class QTimer;

class RTimer;
class ZhttpManager;
class PublishItem;

Expand Down Expand Up @@ -71,9 +71,9 @@ class WsSession : public QObject
QByteArray delayedType;
QByteArray delayedMessage;
QHash<int, qint64> pendingRequests;
QTimer *expireTimer;
QTimer *delayedTimer;
QTimer *requestTimer;
RTimer *expireTimer;
RTimer *delayedTimer;
RTimer *requestTimer;
QList<PublishItem> publishQueue;
ZhttpManager *zhttpOut;
std::shared_ptr<RateLimiter> filterLimiter;
Expand Down Expand Up @@ -101,8 +101,6 @@ class WsSession : public QObject
void filtersFinished(const Filter::MessageFilter::Result &result);
void afterFilters(const PublishItem &item, Filter::SendAction sendAction, const QByteArray &content);
void setupRequestTimer();

private slots:
void expireTimer_timeout();
void delayedTimer_timeout();
void requestTimer_timeout();
Expand Down

0 comments on commit 5dac624

Please sign in to comment.