Hi All, I have created two C++ classes (Recorder, Player) for recording and playback. They have a common base class which takes care of creating the mainloop, mainloop API and context. Each of these two classes run in separate threads (Qt thread). The Recorder captures data from the stream and writes it into a common buffer. The Player loops through the buffer and writes any available data into the output device. The problem is that this program shows inconsistent behaviour. Sometimes it works (I can hear what what I am saying in the microphone), but most of the times it doesn't work at all. The player callback (the one that I set up using ****_set_write_callback) executes one time at the beginning of the execution. After that it doesn't execute anymore (I've tested it with debug messages). It doesn't reports any overflow/underflow conditions either. The recorder is working as far as I've checked (written the captured data into a file and played it using aplay). I don't know what's the problem here. Is it because I've created two mainloops in a single application or there are some other reasons? Here are my codes - 1. Common base class for recorder and player: http://pastebin.com/fbzjRV9j 2. Recorder Class: http://pastebin.com/r6hWCpG6 3. Player Class: http://pastebin.com/DDg5B1R1 4. Code that initiates/stops recording/playback: http://pastebin.com/NGy8icz4 Thank you in advance. Regards, Sayem Ahmed