[linux-audio-dev] Re: non-RT thread waiting for RT thread

Juhana Sadeharju kouhia at nic.funet.fi
Wed Apr 27 15:18:09 UTC 2005


>From: Andy Wingo <wingo at pobox.com>
>
>socketpair(2) will do, either polling or reading in the low priority
>thread will sleep until the high priority thread writes a byte.

I hope we get all the possible methods listed now.

I have used signals for years in my alsashmrec. One process
reads A/D to a ring buffer and another process empties the ring
buffer to the disk. The problem was how to make the disk
process (non-RT process) to wait.

When the disk process has no data in the ring buffer, it goes to
sleep:
 kill((pid_t)diskpid,SIGSTOP);
When the A/D process has written enough data to the ring buffer,
it wakes up the disk process:
 kill((pid_t)diskpid,SIGCONT);
Because A/D process uses smaller buffer size, the A/D process
is executed multiple times before SIGCONT is sent.

Juhana
-- 
  http://music.columbia.edu/mailman/listinfo/linux-graphics-dev
  for developers of open source graphics software



More information about the Linux-audio-dev mailing list