[Asterisk-Dev] moh again... architectural bug (missing synchronization)

Luigi Rizzo rizzo at icir.org
Wed Jun 15 09:03:16 MST 2005

so after fixing thread issues, i am still not getting moh.

I wonder if the lack of /dev/zap/timer prevents moh from
working, which seems a real bug considering that the generator
already supplies the necessary data...

Anyways the situation i see is the following:

- the alloc function on the generator is called, and the client
  registered. HOWEVER, i have no /dev/zap/timer so ast_settimeout()
  is ignored and there is no event that signals the channel that
  somebody is writing to it.
  I suppose ast_settimeout() should register the generator's pipe as a
  descriptor to poll.

- mpg123 correctly produces data and writes them to its end of
  the moh pipe (in mohmp3thread).
  However noone drains the other end of the pipe so after 16kb
  the pipe fills up and even these writes start failing.

I am not familiar enough with the channel() architecture to figure
out what to do in ast_settimeout() to provide an alternative
source of synchronization when /dev/zap/timer is available,
but probably it is something trivial...


More information about the asterisk-dev mailing list