Fixed minor bug in watchdog routine.
Fixed memory leak in tone generator. Can preserve module symbols (make modules MODSTRIP=). git-svn-id: http://yate.null.ro/svn/yate/trunk@90 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
parent
aa926e22b6
commit
85685ea30c
|
@ -385,9 +385,11 @@ fi
|
|||
fi
|
||||
|
||||
MODULE_CFLAGS="-fno-exceptions -fno-check-new $RTTI_OPT -fPIC $HAVE_GCC_FORMAT_CHECK"
|
||||
MODULE_LDFLAGS="-export-dynamic -shared -Wl,--retain-symbols-file,/dev/null"
|
||||
MODULE_LDFLAGS="-export-dynamic -shared"
|
||||
MODULE_SYMBOLS="-Wl,--retain-symbols-file,/dev/null"
|
||||
AC_SUBST(MODULE_CFLAGS)
|
||||
AC_SUBST(MODULE_LDFLAGS)
|
||||
AC_SUBST(MODULE_SYMBOLS)
|
||||
|
||||
AC_CONFIG_FILES([yate.spec
|
||||
yate.pc
|
||||
|
|
|
@ -198,7 +198,7 @@ int Engine::run()
|
|||
{
|
||||
Debug(DebugAll,"Engine::run()");
|
||||
install(new EngineStatusHandler);
|
||||
if (s_super_handle)
|
||||
if (s_super_handle >= 0)
|
||||
install(new EngineSuperHandler);
|
||||
loadPlugins();
|
||||
Debug(DebugInfo,"plugins.count() = %d",plugins.count());
|
||||
|
|
|
@ -163,7 +163,9 @@ Debugger::Debugger(const char *name, const char *format, ...)
|
|||
va_start(va,format);
|
||||
dbg_output(buf,format,va);
|
||||
va_end(va);
|
||||
out_mux.lock();
|
||||
s_indent++;
|
||||
out_mux.unlock();
|
||||
}
|
||||
else
|
||||
m_name = 0;
|
||||
|
@ -179,7 +181,9 @@ Debugger::Debugger(int level, const char *name, const char *format, ...)
|
|||
va_start(va,format);
|
||||
dbg_output(buf,format,va);
|
||||
va_end(va);
|
||||
out_mux.lock();
|
||||
s_indent++;
|
||||
out_mux.unlock();
|
||||
}
|
||||
else
|
||||
m_name = 0;
|
||||
|
@ -188,7 +192,9 @@ Debugger::Debugger(int level, const char *name, const char *format, ...)
|
|||
Debugger::~Debugger()
|
||||
{
|
||||
if (m_name) {
|
||||
out_mux.lock();
|
||||
s_indent--;
|
||||
out_mux.unlock();
|
||||
if (s_debugging) {
|
||||
char buf[64];
|
||||
::snprintf(buf,sizeof(buf),"<<< %s",m_name);
|
||||
|
@ -201,12 +207,16 @@ Debugger::~Debugger()
|
|||
|
||||
void Debugger::setOutput(void (*outFunc)(const char *))
|
||||
{
|
||||
out_mux.lock();
|
||||
s_output = outFunc ? outFunc : dbg_stderr_func;
|
||||
out_mux.unlock();
|
||||
}
|
||||
|
||||
void Debugger::setIntOut(void (*outFunc)(const char *))
|
||||
{
|
||||
out_mux.lock();
|
||||
s_intout = outFunc;
|
||||
out_mux.unlock();
|
||||
}
|
||||
|
||||
void Debugger::enableOutput(bool enable)
|
||||
|
|
|
@ -14,6 +14,7 @@ INCLUDES := -I@top_srcdir@
|
|||
CFLAGS := -O2 @MODULE_CFLAGS@
|
||||
LDFLAGS:= -L.. -lyate
|
||||
MODFLAGS:= @MODULE_LDFLAGS@
|
||||
MODSTRIP:= @MODULE_SYMBOLS@
|
||||
INCFILES := @top_srcdir@/telengine.h @top_srcdir@/telephony.h @top_srcdir@/yateversn.h
|
||||
|
||||
SUBDIRS :=
|
||||
|
@ -59,8 +60,8 @@ LOCALFLAGS =
|
|||
LOCALLIBS =
|
||||
COMPILE = $(CC) $(DEFS) $(DEBUG) $(INCLUDES) $(CFLAGS)
|
||||
LINK = $(CC) $(LDFLAGS)
|
||||
MODLINK = $(CC) $(MODFLAGS) $(LDFLAGS)
|
||||
MODCOMP = $(COMPILE) $(MODFLAGS) $(LDFLAGS)
|
||||
MODLINK = $(CC) $(MODFLAGS) $(MODSTRIP) $(LDFLAGS)
|
||||
MODCOMP = $(COMPILE) $(MODFLAGS) $(MODSTRIP) $(LDFLAGS)
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
|
|
@ -34,6 +34,7 @@ private:
|
|||
static const Tone *getBlock(const String &tone);
|
||||
String m_name;
|
||||
const Tone *m_tone;
|
||||
DataBlock m_data;
|
||||
unsigned m_brate;
|
||||
unsigned m_total;
|
||||
unsigned long long m_time;
|
||||
|
@ -94,7 +95,7 @@ static const Tone t_specdial[] = { { 7600, tone421hz }, { 400, 0 }, { 0, 0 } };
|
|||
static const Tone t_ring[] = { { 8000, tone421hz }, { 32000, 0 }, { 0, 0 } };
|
||||
|
||||
ToneSource::ToneSource(const String &tone)
|
||||
: m_name(tone), m_tone(0), m_brate(16000), m_total(0), m_time(0)
|
||||
: m_name(tone), m_tone(0), m_data(0,480), m_brate(16000), m_total(0), m_time(0)
|
||||
{
|
||||
Debug(DebugAll,"ToneSource::ToneSource(\"%s\") [%p]",tone.c_str(),this);
|
||||
m_tone = getBlock(tone);
|
||||
|
@ -148,14 +149,13 @@ void ToneSource::run()
|
|||
Debug(DebugAll,"ToneSource::run() [%p]",this);
|
||||
unsigned long long tpos = Time::now();
|
||||
m_time = tpos;
|
||||
DataBlock data(0,480);
|
||||
int samp = 0; // sample number
|
||||
int dpos = 1; // position in data
|
||||
const Tone *tone = m_tone;
|
||||
int nsam = tone->nsamples;
|
||||
while (m_tone) {
|
||||
short *d = (short *) data.data();
|
||||
for (unsigned int i = data.length()/2; i--; samp++,dpos++) {
|
||||
short *d = (short *) m_data.data();
|
||||
for (unsigned int i = m_data.length()/2; i--; samp++,dpos++) {
|
||||
if (samp >= nsam) {
|
||||
samp = 0;
|
||||
const Tone *otone = tone;
|
||||
|
@ -181,9 +181,9 @@ void ToneSource::run()
|
|||
#endif
|
||||
::usleep((unsigned long)dly);
|
||||
}
|
||||
Forward(data,data.length()/2);
|
||||
m_total += data.length();
|
||||
tpos += (data.length()*1000000ULL/m_brate);
|
||||
Forward(m_data,m_data.length()/2);
|
||||
m_total += m_data.length();
|
||||
tpos += (m_data.length()*1000000ULL/m_brate);
|
||||
};
|
||||
m_time = Time::now() - m_time;
|
||||
m_time = (m_total*1000000ULL + m_time/2) / m_time;
|
||||
|
|
|
@ -8,6 +8,7 @@ INCLUDES := -I@top_srcdir@
|
|||
CFLAGS := -O0 @MODULE_CFLAGS@
|
||||
LDFLAGS:= -L.. -lyate
|
||||
MODFLAGS:= @MODULE_LDFLAGS@
|
||||
MODSTRIP:= @MODULE_SYMBOLS@
|
||||
|
||||
PROGS = msgsniff.yate randcall.yate
|
||||
LIBS =
|
||||
|
@ -17,8 +18,8 @@ LOCALFLAGS =
|
|||
LOCALLIBS =
|
||||
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CFLAGS)
|
||||
LINK = $(CC) $(LDFLAGS)
|
||||
MODLINK = $(CC) $(MODFLAGS) $(LDFLAGS)
|
||||
MODCOMP = $(COMPILE) $(MODFLAGS) $(LDFLAGS)
|
||||
MODLINK = $(CC) $(MODFLAGS) $(MODSTRIP) $(LDFLAGS)
|
||||
MODCOMP = $(COMPILE) $(MODFLAGS) $(MODSTRIP) $(LDFLAGS)
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
|
|
@ -13,7 +13,7 @@ moddir="@libdir@/yate"
|
|||
confdir="@sysconfdir@/yate"
|
||||
s1="@MODULE_CFLAGS@"
|
||||
s2="-I@includedir@/yate"
|
||||
s3="@MODULE_LDFLAGS@"
|
||||
s3="@MODULE_LDFLAGS@ @MODULE_SYMBOLS@"
|
||||
s4="-lyate"
|
||||
|
||||
while [ "$#" != 0 ]; do
|
||||
|
|
|
@ -9,5 +9,5 @@ yate-config=yate-config
|
|||
Name: Yate
|
||||
Description: Yet Another Telephony Engine
|
||||
Version: @PACKAGE_VERSION@
|
||||
Libs: -L${libdir} -lyate @MODULE_LDFLAGS@
|
||||
Libs: -L${libdir} -lyate @MODULE_LDFLAGS@ @MODULE_SYMBOLS@
|
||||
Cflags: -I${includedir}/yate @MODULE_CFLAGS@
|
||||
|
|
Loading…
Reference in New Issue