- // wait for data...
- //lprintf("sthr: wait... (%i/%i)\n", samples_done, samples_made);
- ret = sceKernelWaitSema(sound_sem, 1, 0);
- //lprintf("sthr: sceKernelWaitSema: %i\n", ret);
+ // wait for data (use at least 2 blocks)
+ lprintf("sthr: wait... (%i)\n", samples_made - samples_done);
+ while (samples_made - samples_done <= samples_block*2 && !sound_thread_exit)
+ ret = sceKernelWaitSema(sound_sem, 1, 0);
+ if (ret < 0) lprintf("sthr: sceKernelWaitSema: %i\n", ret);