Fix kissattach 'Device or resource busy' #23
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi,
I got bit by the kissattach issue mentioned in the user guide on Debian Jessie. I though it was strange, because I've written a program, fldigiattach, that exposes a pty slave to kissattach. I never experienced the issue.
After some debugging I realized that the only real difference between fldigiattach and the code in kiss.c was that fldigiattach, which is written in Go, indirectly uses non-blocking IO syscalls. This got me thinking that maybe the blocking read from
pt_master_fd
was causing the "Device or resource busy" error seen by kissattach.This fix resolves the issue by using select() to wait for data before reading from the master fd.
I've confirmed the fix on Debian Jessie.