Well, I just want to use the RT Pipes as if they are a normal fifo. That
is, the fifo has a bounded amount of memory and if the number of written
bytes exceeds this threshold the data which was firstly written into the
fifo should be dropped. By the way, I am using rt_pipe_write() and
rt_pipe_read() because I just want to exchange simple integer values.

Thanks for help,

Markus Franke

Gilles Chanteperdrix wrote:
> Gilles Chanteperdrix wrote:
>  > Markus Franke wrote:
>  > > OK. And if there is an overflow is there anything I can do during
>  > > runtime, e.g. just to overwrite the data in the queue?
>  > 
>  > Why not something like:
>  > 
>  > while (-ENOMEM == rt_pipe_write(pipe, buf, size, mode)) {
>  >    RT_PIPE_MSG *msg;
>  >    rt_pipe_receive(pipe, &msg, TM_INFINITE);
>  >    rt_pipe_free(pipe, msgp);
>  > }
> 
> This will not work: pipe are a two-ways communication channel, so that
> calling rt_pipe_receive returns messages that were sent from
> user-space, and not the messages previously sent with rt_pipe_write. I
> am afraid what you want to do is not what rt pipes were designed for.
> 

-- 
Nichts ist so praktisch wie eine gute Theorie!
begin:vcard
fn:Markus Franke
n:Franke;Markus
adr;quoted-printable:;;Vettersstra=C3=9Fe 64/722;Chemnitz;Saxony;09126;Germany
email;internet:[EMAIL PROTECTED]
x-mozilla-html:FALSE
url:http://www.tu-chemnitz.de/~franm
version:2.1
end:vcard

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to