On Wed, 9 Nov 2005, Philippe Gerum wrote: > Philippe Gerum wrote: > > Sebastian Smolorz wrote: > > > >> Hi, > >> > >> I've spotted a -- in my view -- strange behaviour of RT pipes in the > >> native skin. The scenario is as follows: > >> > >> A RT task creates a RT pipe and writes some bytes into it. A NRT > >> counterpart reads from this pipe, but not all bytes. Afterwards, the RT > >> task deletes the pipe. > >> > >> Now the program is re-run: RT task creates the pipe, writes some bytes, > >> and the NRT part reads some bytes, but begins with the old ones which > >> weren't read during the first run of the program. > >> > >> Now my question: Is this behaviour intentional? > > > > > > Nope. > > > > If it is then I see the > > > >> following problem: A task which calls rt_pipe_create() cannot be sure > >> that > >> the pipe is empty. So it should be able to clear the pipe before use > >> but I > >> found no function that allows a RT task to clear the pipe. > >> > > > > ioctl(fd,XNPIPEIOC_FLUSH,0) would do, but still, we should clear the > > output queue when closing the kernel side. In the same vein, closing the > > user-space side does not clear the input queue that feeds the kernel > > side. Thanks for spotting this. > > > > Ok, fixed.
Thanks, now it works! :-) Sebastian _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core