Re: [ecasound] pyecasound of ecasound 2.3.0 hanging

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [ecasound] pyecasound of ecasound 2.3.0 hanging
From: Kai Vehmanen (k_AT_eca.cx)
Date: Mon Nov 17 2003 - 20:49:43 EET


Hi,

On Fri, 14 Nov 2003, Kai Vehmanen wrote:
>> Problem is: I can only use ecasound 2.2.0, because in version 2.3, the
>> pyecasound library hangs after a few seconds.
> When the parse_response() hangs, the ecasound process in the background is
> still alive and kicking. For some reason, the pipe between ecasound and
> the python process just dies if too much data activity is going on.
[...]
> Now this might even be a bug in python's popen3() routine. I've been
> testing with python-2.3.

I've debugged this further and the result seems clear, the Python
implementation simply does not survive heavy ECI traffic. I've tried
upgrading to latest Python (2.3.2) and making a few simple changes to
ecacontrol.py, but the problem persists.

On the other hand, the C implementation seems to survive all my tests.
I've now added a simple test progmram 'test1_stresstest.py' to CVS. It is
run when you issue "make check" in pyecasound.

Normally 'test1_stresstest.py' will test the default implementation, but
this can be overriden by uncommenting the other implementations (in
test1_stresstest.py). If someone wants to try fix ecacontrol.py, uncomment
the line "from ecacontrol import *", set debuglevel to 2, and start
debugging. :)

Also, in 2.3.1 I will revert the default pyeca implementation to be C
(pyecasound.so) and not the Python implementation (ecacontrol.py). The
latter one is still used if python-devel files are not found during
configure run.

Btw; it's good to note that even the C pyeca implementation is
     partly decoupled from ecasound - i.e. it does not call libecasound
     directly, but instead forks the 'ecasound' binary and
     communicates with it using pipes. This means that you don't
     need to recompile all your pyeca apps when you upgrade Ecasound.

> Luckily the old implementation is still available. So try compiling 2.3.0
> with "./configure --enable-pyecasound=c" and re-run your tests. It should

So in CVS, '--enable-pyecasound=c' is once again the default.

-- 
 http://www.eca.cx
 Audio software for Linux!


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Mon Nov 17 2003 - 20:46:07 EET