Skip to content

Use stable standard integer types - #6

Closed
tstenner wants to merge 2 commits into
sccn:masterfrom
tstenner:inttypes
Closed

Use stable standard integer types#6
tstenner wants to merge 2 commits into
sccn:masterfrom
tstenner:inttypes

Conversation

@tstenner

Copy link
Copy Markdown
Collaborator

@tstenner tstenner added this to the 1.14 release milestone Oct 23, 2018
@tstenner tstenner self-assigned this Oct 23, 2018
@tstenner tstenner mentioned this pull request Nov 3, 2018
@tstenner tstenner closed this Nov 8, 2018
@tstenner
tstenner deleted the inttypes branch November 8, 2018 16:31
cboulay added a commit that referenced this pull request Jun 17, 2026
#221)

A synchronous (transp_sync_blocking) push blocks until every consumer accepts
the sample, which provides the self-regulating backpressure requested in #221
(push runs only as fast as the slowest receiver drains) but could otherwise
stall the producer forever on a dead/stalled consumer.

Add a per-consumer send timeout, configurable via [tuning] SyncSendTimeout
(seconds). It defaults to the reconnect watchdog threshold
(WatchdogTimeThreshold, 15s) so a consumer that can't keep up for as long as a
stalled connection is treated like one; 0 means block forever (previous
behavior). No new exported symbols -- the knob is config-only.

Implementation uses SO_SNDTIMEO on each handed-off sync socket (forcing
blocking mode first), so the hot path stays a plain blocking asio::write with
no per-push overhead. On expiry the write returns would_block/timed_out, which
reuses the existing close-and-drop-consumer path; TCP framing means we cannot
resume a half-written sample, so a timed-out consumer is disconnected.

runtime_config test verifies SyncSendTimeout defaults to WatchdogTimeThreshold.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
cboulay added a commit that referenced this pull request Jun 17, 2026
#221)

A synchronous (transp_sync_blocking) push blocks until every consumer accepts
the sample, which provides the self-regulating backpressure requested in #221
(push runs only as fast as the slowest receiver drains) but could otherwise
stall the producer forever on a dead/stalled consumer.

Add a per-consumer send timeout, configurable via [tuning] SyncSendTimeout
(seconds). It defaults to the reconnect watchdog threshold
(WatchdogTimeThreshold, 15s) so a consumer that can't keep up for as long as a
stalled connection is treated like one; 0 means block forever (previous
behavior). No new exported symbols -- the knob is config-only.

Implementation uses SO_SNDTIMEO on each handed-off sync socket (forcing
blocking mode first), so the hot path stays a plain blocking asio::write with
no per-push overhead. On expiry the write returns would_block/timed_out, which
reuses the existing close-and-drop-consumer path; TCP framing means we cannot
resume a half-written sample, so a timed-out consumer is disconnected.

runtime_config test verifies SyncSendTimeout defaults to WatchdogTimeThreshold.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant