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!