It seems that the blocked poll (-1) is not returning after shutting down the
socket so that SipClient does not exit  from its run method.
I made a test putting a timeout while calling isReadyToReady(15000) and
SipClient returned since poll  had returned too due timeout
OsSocket::close()
...
...
  // This forces any selects which are blocked on
  // this socket to return
  shutdown(tempSocketDescriptor, SHUT_RDWR);
It seems this is not the case with mac os x
What do you say about that?

Thanks
Paulo
On Tue, Sep 22, 2009 at 11:04 PM, Paulo Vicentini <vicentini.pa...@gmail.com
> wrote:

> Hi,
>
> I am coping with an issue while calling sipxUnInitialize (mac os x):
>
>
>
> stack:
>
> OsTaskBase::delay()   /sipXportLib/src/os/OsTask.cpp:122 0x001e46d8
>
>  OsTaskBase::waitUntilShutDown() /sipXportLib/src/os/OsTask.cpp:255
> 0x001e4f30
>
>  SipClient::~SipClient() /sipXtackLib/src/net/SipClient.cpp:140 0x0011eb76
>
>  SipUdpServer::~SipUdpServer() /sipXtackLib/src/net/SipUdpServer.cpp:247
> 0x00184228
>
> SipUserAgent::~SipUserAgent() /sipXtackLib/src/net/SipUserAgent.cpp:457
> 0x0018a7f8
>
>  sipxUnInitialize() /sipXcallLib/src/tapi/sipXtapi.cpp:692 0x0004fe67
>
>
> pClient-6 failed to terminate after 16.000000 seconds"
>
> "2009-09-23T01:05:13.998085Z":838:KERNEL:WARNING:Macintosh.local::00000000:sipXtapi:"Task:
> SipClient-6 failed to terminate after 17.000000 seconds"
>
> "2009-09-23T01:05:14.998147Z":839:KERNEL:WARNING:Macintosh.local::00000000:sipXtapi:"Task:
> SipClient-6 failed to terminate after 18.000000 seconds"
>
> "2009-09-23T01:05:15.998289Z":840:KERNEL:WARNING:Macintosh.local::00000000:sipXtapi:"Task:
> SipClient-6 failed to terminate after 19.000000 seconds"
>
> "2009-09-23T01:05:26.514896Z":841:KERNEL:ERR:Macintosh.local::00000000:sipXtapi:"Task:
> SipClient-6 failed to terminate after 20.000000 seconds"
>
> "2009-09-23T01:05:38.981677Z":842:KERNEL:ERR:Macintosh.local::00000000:sipXtapi:"Task:
> SipClient-6 failed to terminate, waiting..."
>
> "2009-09-23T01:11:21.804683Z":843:KERNEL:ERR:Macintosh.local::00000000:sipXtapi:"Task:
> SipClient-6 failed to terminate, waiting..."
>
>
>
>
> SipClient::~SipClient()
>
> ...
>
> ...
>
>  if(isStarted() || isShuttingDown())
>
>         {
>
> #ifdef TEST_PRINT
>
>             osPrintf("SipClient::~SipClient waitUntilShutDown\n");
>
> #endif
>
>             waitUntilShutDown();
>
>
> ---->
>
> UtlBoolean OsTaskBase::waitUntilShutDown(int milliSecToWait)
>
> {
>
>    // If task is already shut down, just return.
>
>    if (isShutDown())  ---->>>RETURN FALSE (SHUTTING_DOWN != SHUT_DOWN)
>
>       return TRUE;
>
> ....
>
> .....
>
> // wait up to another nineteen seconds (20 total) for the task to terminate
>
>    // printing out a console complaint every second
>
>    if (isShuttingDown())
>
>    {....
>
>
> // Do not exit if not shut down
>
>    while (isShuttingDown())
>
>    {
>
>          OsSysLog::add(FAC_KERNEL, PRI_ERR, "Task: %s failed to terminate,
> waiting...",
>
>                   taskName.data());
>
>          delay(300000);
>
>
> /********************/
>
> I will try to find out what is preventing SipClient task to return from its
> run method
>
> Do you have any suggestion?
>
>
> Thanks
>
>
> Paulo
>
>
>
>
>
>
_______________________________________________
sipxtapi-dev mailing list
sipxtapi-dev@list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/

Reply via email to