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 #71

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Luap99
Copy link

@Luap99 Luap99 commented Jun 26, 2024

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 #37

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]>
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.
1 participant