Hello everyone,
I have two problems related to shutting down sofia stack.
In my application I create a separate thread that does the stack
initialization and runs the event loop. That's how I do it:
su_init();
su_root_create(instance->root);
nua_create(instance->root, ...); <- this is where the
su_pthread_port_clone_main is started
nua_set_params();
while (true)
{
su_root_step (instance->root, 100);
if (terminate)
{
event->reset();
nua_shutdown(instance->nua);
su_root_step(instance->root, 500);
event->wait(500);
nua_destroy(instance->nua);
break;
}
}
su_root_destroy (instance->root);
su_deinit();
Problem 1)
When the stack should end, I run that ugly piece of code, that calls
nua_sutdown(), does su_root_step() to receive the nua_r_shutdown event
and then calls nua_destroy(). However, even if I receive the
nua_r_shutdown event, nua_destroy() reports: FATAL: nua_shutdown not
completed.
What is the clean way to handle this? And what else is needed for
nua_shutdown() to be successfull?
Problem 2)
After calling the su_root_destroy() and su_deinit() the
su_pthread_port_clone_main is still running and waiting inside su_wait()
function. This leads to access violations whenever I try to unload sofia
library before shutting down the program.
su_root_destroy() documentation states that I should not call it from
cloned task. Is this the case? And if not, why does it fails to stop the
thread?
Any help is much appreciated
Thanks in advance
Martin
--
Martin Drasar, Developer / Analyst
OptimSys, s.r.o.
[EMAIL PROTECTED]
Tel: +420 541 143 065
Fax: +420 541 143 066
http://www.optimsys.cz
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Sofia-sip-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel