On Sun, Nov 8, 2009 at 10:18 PM, Kapil Agrawal <kapil....@gmail.com> wrote: > Hi, > > I am stuck on the following problem, please help me in finding a solution. > > In my C program, I have two threads, > thd_r reading video realtime from an hardware and thd_w writing to a file. > thd_r is very slow (as it real time video capture) as compared to thd_w. To > push data from one thread to another push a buffer in a g_queue which get > pulled in the thd_w and used. But since thd_r is much slower then thd_w, I > have to wait in thd_w again and again in a while loop polling for the data > to be pushed queue from thd_r. Because of this polling using while, huge CPU > is getting consumed. > This I try fixing by putting a usleep in the while loop , hence there is > a small decrease in cpu utilization.
Create a pipe. Write data into that pipe from thd_r. In thd_w, you can do a blocking read on the pipe. -aditya _______________________________________ Pune GNU/Linux Users Group Mailing List