Skip to content

Commit 6c01e36

Browse files
[fix][client] prevent garbage collection of token-supplier (#412)
* Add persistent reference to Auth Object * Update src/Client.cc --------- Co-authored-by: Yunze Xu <xyzinfernity@163.com>
1 parent 52ab66a commit 6c01e36

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

src/Client.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,8 @@ Client::Client(const Napi::CallbackInfo &info) : Napi::ObjectWrap<Client>(info)
144144
if (clientConfig.Has(CFG_AUTH) && clientConfig.Get(CFG_AUTH).IsObject()) {
145145
Napi::Object obj = clientConfig.Get(CFG_AUTH).ToObject();
146146
if (obj.Has(CFG_AUTH_PROP) && obj.Get(CFG_AUTH_PROP).IsObject()) {
147-
Authentication *auth = Authentication::Unwrap(obj.Get(CFG_AUTH_PROP).ToObject());
147+
this->authRef_ = Napi::Persistent(obj.Get(CFG_AUTH_PROP).As<Napi::Object>());
148+
Authentication *auth = Authentication::Unwrap(this->authRef_.Value());
148149
pulsar_client_configuration_set_auth(cClientConfig.get(), auth->GetCAuthentication());
149150
}
150151
}

src/Client.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class Client : public Napi::ObjectWrap<Client> {
5454
std::shared_ptr<pulsar_client_t> cClient;
5555
std::shared_ptr<pulsar_client_configuration_t> cClientConfig;
5656
pulsar_logger_level_t logLevel = pulsar_logger_level_t::pulsar_INFO;
57+
Napi::ObjectReference authRef_;
5758

5859
Napi::Value CreateProducer(const Napi::CallbackInfo &info);
5960
Napi::Value Subscribe(const Napi::CallbackInfo &info);

0 commit comments

Comments
 (0)