Cancel read on socket
Chris Johns
chrisj at rtems.org
Wed May 28 07:52:50 UTC 2008
Ralf Corsepius wrote:
> On Wed, 2008-05-28 at 09:22 +0300, Leon Pollak wrote:
>> On Wednesday, 28 בMay 2008, Chris Johns wrote:
>>> Joel Sherrill wrote:
>>>> Without thinking about compatibility at all, shouldn't it be
>>>> possible to add an RTEMS specific IOCTL which forced
>>>> a read() to return an error like ECANCELED?
>>> I do not think this is a good idea. Other ways to solve this problem have
>>> been suggested.
> I agree with Chris.
>
>> As someone who feels strong interest in this, can I ask the question - why is
>> this not a good idea?
> It is very error prone and difficult to implement.
Agreed.
>
> Think along these lines from POSIX:
> ...
> If a read() is interrupted by a signal before it reads any data, it
> shall return -1 with errno set to [EINTR].
>
> If a read() is interrupted by a signal after it has successfully read
> some data, it shall return the number of bytes read.
> ...
>
> How would you handle canceling io?
>
Yes a good question. Having played with a patch for a safe close of sockets
there is a range of issues to consider inside the stack.
>
> In addition to that, I am opposed to adding anything proprietary to a
> standardized API.
>
I agree and also ask the question, if such a call was needed surely it would
have been added to the standards. Maybe developers of the APIs and the
standards creators know other solutions exist.
Regards
Chris
More information about the users
mailing list