Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

StopAtEOF: keep sending lines until EOF #1

Merged
merged 1 commit into from
Jul 23, 2024

Conversation

filiptronicek
Copy link
Owner

When a StopAtEOF() is called the code should continue to send all lines to the Lines channel. The issue here is if the caller is not ready to receive a new line the code blocks as it is using a unbuffered channel. However <-tail.Dying() would return in this case so the line was skipped. This means that the caller did not get all lines until EOF. Now we still want to skip in case any other reason for kill was given therefore add special logic to only not read the Dying channel on the EOF case.

The one downside is that StopAtEOF() could block forever if the caller never reads new Lines but this seems logical to me. If the caller wants to wait for EOF but never reads remaining Lines this would be a bug on their end.

Fixes nxadm#37

Originally raised in nxadm#71

When a StopAtEOF() is called the code should continue to send all lines
to the Lines channel. The issue here is if the caller is not ready to
receive a new line the code blocks as it is using a unbuffered channel.
However <-tail.Dying() would return in this case so the line was
skipped. This means that the caller did not get all lines until EOF.
Now we still want to skip in case any other reason for kill was given
therefore add special logic to only not read the Dying channel on the
EOF case.

The one downside is that StopAtEOF() could block forever if the caller
never reads new Lines but this seems logical to me. If the caller wants
to wait for EOF but never reads remaining Lines this would be a bug on
their end.

Fixes nxadm#37

Signed-off-by: Paul Holzinger <[email protected]>
@filiptronicek filiptronicek merged commit 73529f4 into filiptronicek:master Jul 23, 2024
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.

StopAtEOF does not function as expected.
2 participants