[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-serial
Subject:    Re: g_serial hangs on write when the cable is disconnected
From:       Laszlo Papp <lpapp () kde ! org>
Date:       2015-08-05 15:40:21
Message-ID: CAOMwXhM7TNZAGOUAC=gcwjqTz8y7FGs0FRbJb4SQO+VfbzYJJA () mail ! gmail ! com
[Download RAW message or body]

On Wed, Aug 5, 2015 at 3:56 PM, Greg KH <greg@kroah.com> wrote:
> On Wed, Aug 05, 2015 at 11:05:56AM +0100, Laszlo Papp wrote:
>> Hi,
>>
>> The code below reproduces the issue. The code is intentionally kept
>> small, so it deliberately does not have error checking, et al.
>>
>> Now, my concern is that it blocks for the write operation if the cable
>> is disconnected. This is not inline with the /dev/ttyS* operation, for
>> instance. They would not block if I disconnected the serial cable.
>>
>> Is this a bug or feature? :-) If it turns out to be a feature, is it
>> better to use O_NONBLOCK if one does not want to use pthreads, etc?
>>
>> #include <sys/types.h>
>> #include <sys/stat.h>
>> #include <fcntl.h>
>>
>> int main()
>> {
>>     const char buf[] = "Hello World!\n";
>>     int fd = open("/dev/ttyGS0", O_RDWR | O_NONBLOCK);
>
> This line discipline is very different from the "traditional" tty line
> discipline, so it might not know anything about cable removals.
>
> good luck,
>
> greg k-h
> --

Thank you for your prompt reply.

Wow, I managed to mess it up in my original email! So, this code above
made it working, but without O_NONBLOCK, it was not working. Using
O_NONBLOCK is my current nasty workaround. As you are indicating it,
this does not quite feel right, does it! I am not sure what the right
thing would be to do in order to get write non-blocking for g_serial.
I hope that someone with more knowledge about it than me could help
out!

Thank you in advance.


> To unsubscribe from this list: send the line "unsubscribe linux-serial" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic