Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/core/defercall.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class DeferCall : public QObject
template <typename T>
static void deleteLater(T *p)
{
global()->defer([=]() { delete p; });
global()->defer([=] { delete p; });
}

private slots:
Expand Down
4 changes: 3 additions & 1 deletion src/core/processquit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@
# include <unistd.h>
#endif

#include "defercall.h"

namespace {

// safeobj stuff, from qca
Expand All @@ -46,7 +48,7 @@ void releaseAndDeleteLater(QObject *owner, QObject *obj)
{
obj->disconnect(owner);
obj->setParent(0);
obj->deleteLater();
DeferCall::deleteLater(obj);
}

class SafeSocketNotifier : public QObject
Expand Down
3 changes: 2 additions & 1 deletion src/core/simplehttpserver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include <QLocalSocket>
#include <QLocalServer>
#include "log.h"
#include "defercall.h"
#include "httpheaders.h"

class SimpleHttpRequest::Private : public QObject
Expand Down Expand Up @@ -84,7 +85,7 @@ class SimpleHttpRequest::Private : public QObject
{
sock->disconnect(this);
sock->setParent(0);
sock->deleteLater();
DeferCall::deleteLater(sock);
sock = 0;
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/core/statsmanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include "qzmqsocket.h"
#include "timerwheel.h"
#include "log.h"
#include "defercall.h"
#include "tnetstring.h"
#include "httpheaders.h"
#include "simplehttpserver.h"
Expand Down Expand Up @@ -1560,7 +1561,7 @@ class StatsManager::Private : public QObject
).arg(prometheusPrefix, m.name, m.help, prometheusPrefix, m.name, m.type, prometheusPrefix, m.name, value.toString());
}

req->finished.connect(boost::bind(&SimpleHttpRequest::deleteLater, req));
req->finished.connect([=] { DeferCall::deleteLater(req); });

HttpHeaders headers;
headers += HttpHeader("Content-Type", "text/plain");
Expand Down
7 changes: 4 additions & 3 deletions src/core/zwebsocket.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2014-2023 Fanout, Inc.
* Copyright (C) 2023-2024 Fastly, Inc.
* Copyright (C) 2023-2025 Fastly, Inc.
*
* This file is part of Pushpin.
*
Expand Down Expand Up @@ -29,6 +29,7 @@
#include "zhttpresponsepacket.h"
#include "log.h"
#include "rtimer.h"
#include "defercall.h"
#include "zhttpmanager.h"
#include "uuidutil.h"

Expand Down Expand Up @@ -151,15 +152,15 @@ class ZWebSocket::Private : public QObject
{
expireTimerConnection.disconnect();
expireTimer->setParent(0);
expireTimer->deleteLater();
DeferCall::deleteLater(expireTimer);
expireTimer = 0;
}

if(keepAliveTimer)
{
keepAliveTimerConnection.disconnect();
keepAliveTimer->setParent(0);
keepAliveTimer->deleteLater();
DeferCall::deleteLater(keepAliveTimer);
keepAliveTimer = 0;
}

Expand Down
7 changes: 4 additions & 3 deletions src/handler/handlerengine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
#include "qtcompat.h"
#include "tnetstring.h"
#include "rtimer.h"
#include "defercall.h"
#include "log.h"
#include "logutil.h"
#include "packet/httprequestdata.h"
Expand Down Expand Up @@ -1178,7 +1179,7 @@ class Subscription : public QObject
timer_->stop();
timer_->disconnect(this);
timer_->setParent(0);
timer_->deleteLater();
DeferCall::deleteLater(timer_);
}
}

Expand Down Expand Up @@ -1770,7 +1771,7 @@ class HandlerEngine::Private : public QObject
outHeaders += HttpHeader("Content-Type", "text/plain");

req->respond(code, reason, outHeaders, body.toUtf8());
req->finished.connect(boost::bind(&SimpleHttpRequest::deleteLater, req));
req->finished.connect([=] { DeferCall::deleteLater(req); });

QString msg = QString("control: %1 %2 code=%3 %4").arg(req->requestMethod(), QString::fromUtf8(req->requestUri()), QString::number(code), QString::number(body.size()));
if(items > -1)
Expand Down Expand Up @@ -3154,7 +3155,7 @@ private slots:
hs->subscribeCallback().remove(this);
hs->unsubscribeCallback().remove(this);
hs->finishedCallback().remove(this);
hs->deleteLater();
DeferCall::deleteLater(hs);

if(!rp.requests.isEmpty())
writeRetryPacket(addr, rp);
Expand Down
5 changes: 3 additions & 2 deletions src/handler/httpsession.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
#include <QRandomGenerator>
#include "qtcompat.h"
#include "rtimer.h"
#include "defercall.h"
#include "log.h"
#include "bufferlist.h"
#include "packet/retryrequestpacket.h"
Expand Down Expand Up @@ -264,11 +265,11 @@ class HttpSession::Private : public QObject

timerConnection.disconnect();
timer->setParent(0);
timer->deleteLater();
DeferCall::deleteLater(timer);

retryTimerConnection.disconnect();
retryTimer->setParent(0);
retryTimer->deleteLater();
DeferCall::deleteLater(retryTimer);
}

void start()
Expand Down
5 changes: 3 additions & 2 deletions src/handler/httpsessionupdatemanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

#include <QTimer>
#include <QUrl>
#include "defercall.h"
#include "httpsession.h"

class HttpSessionUpdateManager::Private : public QObject
Expand Down Expand Up @@ -61,7 +62,7 @@ class HttpSessionUpdateManager::Private : public QObject

bucket->timer->disconnect(this);
bucket->timer->setParent(0);
bucket->timer->deleteLater();
DeferCall::deleteLater(bucket->timer);
delete bucket;
}
}
Expand All @@ -76,7 +77,7 @@ class HttpSessionUpdateManager::Private : public QObject

bucket->timer->disconnect(this);
bucket->timer->setParent(0);
bucket->timer->deleteLater();
DeferCall::deleteLater(bucket->timer);
delete bucket;
}

Expand Down
3 changes: 2 additions & 1 deletion src/handler/ratelimiter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include <QMap>
#include <QPointer>
#include <QTimer>
#include "defercall.h"

#define MIN_BATCH_INTERVAL 25

Expand Down Expand Up @@ -95,7 +96,7 @@ class RateLimiter::Private : public QObject
{
timer->disconnect(this);
timer->setParent(0);
timer->deleteLater();
DeferCall::deleteLater(timer);
}

void setRate(int actionsPerSecond)
Expand Down
3 changes: 2 additions & 1 deletion src/handler/sequencer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <QDateTime>
#include <QTimer>
#include "log.h"
#include "defercall.h"
#include "publishitem.h"
#include "publishlastids.h"

Expand Down Expand Up @@ -88,7 +89,7 @@ class Sequencer::Private : public QObject
{
expireTimer->disconnect(this);
expireTimer->setParent(0);
expireTimer->deleteLater();
DeferCall::deleteLater(expireTimer);

qDeleteAll(idCacheById);
}
Expand Down
7 changes: 4 additions & 3 deletions src/handler/wssession.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include <QTimer>
#include <QDateTime>
#include "log.h"
#include "defercall.h"
#include "filter.h"
#include "publishitem.h"
#include "publishformat.h"
Expand Down Expand Up @@ -57,15 +58,15 @@ WsSession::~WsSession()
{
expireTimer->disconnect(this);
expireTimer->setParent(0);
expireTimer->deleteLater();
DeferCall::deleteLater(expireTimer);

delayedTimer->disconnect(this);
delayedTimer->setParent(0);
delayedTimer->deleteLater();
DeferCall::deleteLater(delayedTimer);

requestTimer->disconnect(this);
requestTimer->setParent(0);
requestTimer->deleteLater();
DeferCall::deleteLater(requestTimer);
}

void WsSession::refreshExpiration()
Expand Down
3 changes: 2 additions & 1 deletion src/proxy/engine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
#include "packet/zrpcrequestpacket.h"
#include "qtcompat.h"
#include "rtimer.h"
#include "defercall.h"
#include "log.h"
#include "inspectdata.h"
#include "zhttpmanager.h"
Expand Down Expand Up @@ -861,7 +862,7 @@ class Engine::Private : public QObject
delete i;

ps->finishedByPassthroughCallback().remove(this);
ps->deleteLater();
DeferCall::deleteLater(ps);

tryTakeNext();
}
Expand Down
3 changes: 2 additions & 1 deletion src/proxy/wsproxysession.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include "packet/httprequestdata.h"
#include "log.h"
#include "rtimer.h"
#include "defercall.h"
#include "jwt.h"
#include "zhttpmanager.h"
#include "zwebsocket.h"
Expand Down Expand Up @@ -386,7 +387,7 @@ class WsProxySession::Private : public QObject
{
keepAliveConnection.disconnect();
keepAliveTimer->setParent(0);
keepAliveTimer->deleteLater();
DeferCall::deleteLater(keepAliveTimer);
keepAliveTimer = 0;
}
}
Expand Down
Loading