2012/2/23 Wu Ting <wu.t...@comf5.comm.eng.osaka-u.ac.jp> > Hi! Thank you for your response. I've kept working on this problem for two > days, but still cannot find a way to solve it. > > I simplified the program and have determined that the 'O' is produced is > this while loop: > > while msgCount<10000: > msg = tb.queue.delete_head() > payload = msg.to_string() > f.write(payload) > msgCount += 1 > > I also tried to make it sleep for a short time after each operation: > > while msgCount<10000: > msg = tb.queue.delete_head() > sleep(0.00001) > payload = msg.to_string() > sleep(0.00001) > f.write(payload) > sleep(0.00001) > msgCount += 1 >
Two quick things. First, the tb.queue.delete_head() is a blocking call, so it will wait until there is a message to process. You don't need to sleep. Adding a sleep call here is probably only making things worse since you're already not keeping up with the samples. Second, the sleep() call is generally only accurate to about ~10 ms, but you're asking it to sleep for 10 us. I'm not sure if it rounds up or down. Worse case, you're making the loop sleep for about 30 ms total; best case is you actually aren't pausing at all. Tom
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio