Help: Guide needed in trying to delete/flush the content of a fifo file.
Ton
ph.ton.sharma at gmail.com
Tue Nov 16 01:52:02 EST 2010
On Nov 16, 1:47 am, MRAB <pyt... at mrabarnett.plus.com> wrote:
> On 15/11/2010 11:03, Ton wrote:
>
>
>
> > On Nov 14, 11:55 pm, MRAB<pyt... at mrabarnett.plus.com> wrote:
> >> On 14/11/2010 14:48, ton ph wrote:> Hi python geeks,
> >>> I have problem which i have been trying to find out for the past
> >>> some days, i have a device which feeds info to my fifo continuosly, and
> >>> a thread of mine reads the
> >>> fifo continuosly. Now when i change a parameter in the device, it sends
> >>> me different values. Now my problem is that , i want to get rid of the
> >>> contents of my previous info which
> >>> is present in my buffer of the fifo.So i want to flush the fifo content
> >>> when my device starts sending different info .... i am implementing
> >>> writing and reading the fifo using two different threads.
> >>> Please someone guide me solving my problem.
> >>> I highly apologise everyone in case my post is not so clear...
> >>> Thanks everyone in advance.
>
> >> When the info changes, the thread which is putting items into the fifo
> >> could flush it just by getting items from it (using a non-blocking get)
> >> until it's empty.
>
> > Hi Mrab,
> > Thanks for your immediate reply , can you please guide me with any
> > tool or library function which i can flush my fifo content .. i use
> > os.mkfifo() to make the fifo. Or is there any other way i could do
> > this ...
> > Thanks
>
> Ah, you're using pipes; I thought you might've been using a queue. I
> don't know of a way of flushing a pipe.
>
> I wonder whether it's a good idea for the producer to keep filling the
> fifo, because the consumer know how 'old' the info is when it arrives,
> and there's your problem of discarding stale info. Perhaps the producer
> should wait until the consumer has sent an acknowledgement before
> sending more info.
Thanks Mrab,
the problem now is that the producer continously dumps the
information and since i am implementing the producer using the
subprocess as like this
cmd = ['my files']
proc = subprocess.Popen(cmd, shell=True, bufsize=0,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT )
while flag == True:
line = proc.stdout.read()
Now what i want is to synchronise the problem of actual info the
device is sending and the proper reading as the device is sending and
not about reading the previous old info in the fifo... hope i have
made clearer my prob. even i have tried proc.stdout.flush(), to flush
the previous old info in the fifo. Thnks
More information about the Python-list
mailing list