Skip to content

Commit

Permalink
Make RMQConnection#heartbeatSender a strong ref
Browse files Browse the repository at this point in the history
(again).

References #194 #224
  • Loading branch information
michaelklishin committed Nov 24, 2023
1 parent a9c8cd2 commit d86afd4
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 5 deletions.
6 changes: 4 additions & 2 deletions RMQClient/RMQConnection.m
Expand Up @@ -67,7 +67,7 @@ @interface RMQConnection ()
@property (nonatomic, readwrite) id <RMQFrameHandler> frameHandler;
@property (nonatomic, readwrite) id<RMQLocalSerialQueue> commandQueue;
@property (nonatomic, readwrite) id<RMQWaiterFactory> waiterFactory;
@property (nonatomic, weak, readwrite) id<RMQHeartbeatSender> heartbeatSender;
@property (nonatomic, readwrite) id<RMQHeartbeatSender> heartbeatSender;
@property (nonatomic, weak, readwrite) id<RMQConnectionDelegate> delegate;
@property (nonatomic, weak, readwrite) id <RMQChannel> channelZero;
@property (nonatomic, readwrite) RMQConnectionConfig *config;
Expand All @@ -78,7 +78,7 @@ @interface RMQConnection ()
@end

__attribute__((constructor))
static void RMQInitConnectionConfigDefaults() {
static void RMQInitConnectionConfigDefaults(void) {
RMQDefaultHeartbeatTimeout = [NSNumber numberWithInteger:60];
RMQDefaultConnectTimeout = [NSNumber numberWithInteger:30];
RMQDefaultReadTimeout = [NSNumber numberWithInteger:55];
Expand Down Expand Up @@ -685,6 +685,8 @@ - (void)handleFrameset:(RMQFrameset *)frameset {

- (void)transport:(id<RMQTransport>)transport disconnectedWithError:(NSError *)error {
self.handshakeComplete = NO;
[self.heartbeatSender stop];

if (error) [self.delegate connection:self disconnectedWithError:error];
[self.recovery recover:self
channelAllocator:self.channelAllocator
Expand Down
2 changes: 1 addition & 1 deletion RMQClient/RMQConnectionRecover.m
Expand Up @@ -47,7 +47,7 @@ @interface RMQConnectionRecover ()
@property (nonatomic, readwrite) NSUInteger attempts;
@property (nonatomic, readwrite) NSUInteger attemptLimit;
@property (nonatomic, readwrite) BOOL onlyErrors;
@property (nonatomic, weak, readwrite) id<RMQHeartbeatSender> heartbeatSender;
@property (nonatomic, readwrite) id<RMQHeartbeatSender> heartbeatSender;
@property (nonatomic, readwrite) id<RMQLocalSerialQueue> commandQueue;
@property (nonatomic, readwrite) id<RMQConnectionDelegate> delegate;
@end
Expand Down
Expand Up @@ -224,3 +224,4 @@ class ConnectionRecoveryIntegrationTest: XCTestCase {
}

}
// swiftlint:enable function_body_length
1 change: 1 addition & 0 deletions RMQClientTests/ChannelCreationTest.swift
Expand Up @@ -48,6 +48,7 @@ class ChannelCreationTest: XCTestCase {
var allocator: ChannelSpyAllocator?
// swiftlint:disable weak_delegate
var delegate: ConnectionDelegateSpy?
// swiftlint:enable weak_delegate
var transport: ControlledInteractionTransport?

override func setUp() {
Expand Down
4 changes: 2 additions & 2 deletions RMQClientTests/MethodFixtures.swift
Expand Up @@ -166,11 +166,11 @@ class MethodFixtures {
let serverPropertiesDict: [String: RMQValue] = [
"capabilities": RMQTable(dict),
"cluster_name": RMQLongstr("rabbit@myapp.cfapps.pez.pivotal.io"),
"copyright": RMQLongstr("Copyright (c) 2007-2022 VMware, Inc. or its affiliates."),
"copyright": RMQLongstr("Copyright (c) 2007-2023 Broadcom, Inc. or its affiliates."),
"information": RMQLongstr("Licensed under the MPL. See http://www.rabbitmq.com/"),
"platform": RMQLongstr("Erlang/OTP"),
"product": RMQLongstr("RabbitMQ"),
"version": RMQLongstr("3.8.3")
"version": RMQLongstr("3.12.10")
]
return RMQConnectionStart(
versionMajor: RMQOctet(0),
Expand Down

0 comments on commit d86afd4

Please sign in to comment.