I work at NASA, and I am working on a multithreaded C application that decompresses, demosaics, and displays video images from satellites. I inherited this application, and as part of getting the app to process images quickly enough, one of the changes I made was to add threads to do different tasks, so a thread that worked only in RAM would not have to wait for a disk write to complete. I increased the number of threads in the app from six to eight, and one of the new threads never pulls from its queue, even though I did the PUSH and PULL calls( which use xmitter and receiver) the same as the other threads. The other new thread I wrote works fine. I have tried everything I can think of to get the one thread to pull off of its queue, but nothing works, and eventually the queue fills up and transmissions to my app are blocked. I appreciate any help I can get with this problem.
I tried writing the new thread the same as the other threads, and I thought that was enough. However, the new thread never pulls off of its queue.