Skip to content

Commit e8b35e9

Browse files
committed
[C] Use separate variable for disabling status messages.
1 parent 39f0503 commit e8b35e9

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

aeron-driver/src/main/c/aeron_publication_image.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,7 @@ int aeron_publication_image_create(
319319
_image->last_overrun_threshold = initial_position + (term_buffer_length / 2);
320320
_image->time_of_last_packet_ns = now_ns;
321321
_image->next_sm_deadline_ns = 0;
322+
_image->is_sm_enabled = true;
322323
_image->conductor_fields.clean_position = initial_position;
323324
_image->conductor_fields.time_of_last_state_change_ns = now_ns;
324325

@@ -703,7 +704,7 @@ int aeron_publication_image_send_pending_status_message(aeron_publication_image_
703704
int work_count = 0;
704705
int64_t change_number;
705706
AERON_GET_ACQUIRE(change_number, image->end_sm_change);
706-
const bool has_sm_timed_out = now_ns > image->next_sm_deadline_ns;
707+
const bool has_sm_timed_out = image->is_sm_enabled && image->next_sm_deadline_ns < now_ns;
707708

708709
if (NULL != image->invalidation_reason)
709710
{
@@ -1153,7 +1154,7 @@ void aeron_publication_image_stop_status_messages_if_not_active(aeron_publicatio
11531154
{
11541155
if (AERON_PUBLICATION_IMAGE_STATE_ACTIVE != image->conductor_fields.state)
11551156
{
1156-
image->next_sm_deadline_ns = INT64_MAX;
1157+
image->is_sm_enabled = false;
11571158
}
11581159
}
11591160

aeron-driver/src/main/c/aeron_publication_image.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,8 @@ typedef struct aeron_publication_image_stct
138138
int64_t time_of_last_packet_ns;
139139
const char *invalidation_reason;
140140

141+
bool is_sm_enabled;
142+
141143
volatile int64_t response_session_id;
142144

143145
volatile bool is_end_of_stream;

0 commit comments

Comments
 (0)