return -E_SW_PARAMS;
pad->bytes_per_frame = snd_pcm_format_physical_width(FORMAT)
* pad->channels / 8;
- PARA_INFO_LOG("bytes per frame: %d\n", pad->bytes_per_frame);
+ PARA_INFO_LOG("bytes per frame: %zu\n", pad->bytes_per_frame);
if (snd_pcm_nonblock(pad->handle, 1))
PARA_ERROR_LOG("failed to set nonblock mode\n");
return period_size * pad->bytes_per_frame;
if (*dir)
return 1;
ret = -ERRNO_TO_PARA_ERROR(errno);
-/* Ignore return value of fchdir() and close(). We're busted anyway. */
- if (cwd)
- fchdir(*cwd);
+ /* Ignore return value of fchdir() and close(). We're busted anyway. */
+ if (cwd) {
+ int __a_unused ret2 = fchdir(*cwd); /* STFU, gcc */
+ }
close_cwd:
if (cwd)
close(*cwd);
*/
static void generic_signal_handler(int s)
{
- write(signal_pipe[1], &s, sizeof(int));
- //fprintf(stderr, "got sig %i, write returned %d\n", s, ret);
+ ssize_t ret = write(signal_pipe[1], &s, sizeof(int));
+
+ if (ret == sizeof(int))
+ return;
+ if (ret < 0)
+ PARA_EMERG_LOG("%s\n", strerror(errno));
+ else
+ PARA_EMERG_LOG("short write to signal pipe\n");
+ exit(EXIT_FAILURE);
}
/**