SF Bug Tracker [ 1825929 ] woker thread still alive after UpnpFinish()
Submitted By: Luke Kim - nereusuj Worker thread still alive after calling UpnpFinish() because ThreadPoolShutdown() is in the #ifdef DEBUG block. 421 422 #ifdef DEBUG 423 ThreadPoolShutdown( &gSendThreadPool ); 424 ThreadPoolShutdown( &gRecvThreadPool ); git-svn-id: https://pupnp.svn.sourceforge.net/svnroot/pupnp/trunk@228 119443c7-1b9e-41f8-b6fc-b9c35fce742c
This commit is contained in:
parent
c69e16b347
commit
5b744169d5
10
ChangeLog
10
ChangeLog
@ -2,6 +2,16 @@
|
|||||||
Version 1.6.1
|
Version 1.6.1
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
|
|
||||||
|
2007-05-26 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
|
||||||
|
* SF Bug Tracker [ 1825929 ] woker thread still alive after UpnpFinish()
|
||||||
|
Submitted By: Luke Kim - nereusuj
|
||||||
|
Worker thread still alive after calling UpnpFinish() because
|
||||||
|
ThreadPoolShutdown() is in the #ifdef DEBUG block.
|
||||||
|
421
|
||||||
|
422 #ifdef DEBUG
|
||||||
|
423 ThreadPoolShutdown( &gSendThreadPool );
|
||||||
|
424 ThreadPoolShutdown( &gRecvThreadPool );
|
||||||
|
|
||||||
2007-08-28 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
|
2007-08-28 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
|
||||||
* Changed the calls to virtualDirCallback.open(filename, UPNP_WRITE)
|
* Changed the calls to virtualDirCallback.open(filename, UPNP_WRITE)
|
||||||
to (virtualDirCallback.open)(filename, UPNP_WRITE) (notice the
|
to (virtualDirCallback.open)(filename, UPNP_WRITE) (notice the
|
||||||
|
@ -389,11 +389,11 @@ UpnpFinish()
|
|||||||
UpnpPrintf( UPNP_INFO, API, __FILE__, __LINE__,
|
UpnpPrintf( UPNP_INFO, API, __FILE__, __LINE__,
|
||||||
"Inside UpnpFinish : UpnpSdkInit is :%d:\n",
|
"Inside UpnpFinish : UpnpSdkInit is :%d:\n",
|
||||||
UpnpSdkInit );
|
UpnpSdkInit );
|
||||||
#ifdef DEBUG
|
|
||||||
if( UpnpSdkInit == 1 ) {
|
if( UpnpSdkInit == 1 ) {
|
||||||
UpnpPrintf( UPNP_INFO, API, __FILE__, __LINE__,
|
UpnpPrintf( UPNP_INFO, API, __FILE__, __LINE__,
|
||||||
"UpnpFinish : UpnpSdkInit is ONE\n" );
|
"UpnpFinish : UpnpSdkInit is ONE\n" );
|
||||||
}
|
}
|
||||||
|
#ifdef DEBUG
|
||||||
ThreadPoolGetStats( &gRecvThreadPool, &stats );
|
ThreadPoolGetStats( &gRecvThreadPool, &stats );
|
||||||
PrintThreadPoolStats (__FILE__, __LINE__,
|
PrintThreadPoolStats (__FILE__, __LINE__,
|
||||||
"Recv Thread Pool", &stats);
|
"Recv Thread Pool", &stats);
|
||||||
@ -419,20 +419,20 @@ UpnpFinish()
|
|||||||
web_server_destroy();
|
web_server_destroy();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
ThreadPoolShutdown( &gSendThreadPool );
|
ThreadPoolShutdown( &gSendThreadPool );
|
||||||
ThreadPoolShutdown( &gRecvThreadPool );
|
ThreadPoolShutdown( &gRecvThreadPool );
|
||||||
UpnpPrintf( UPNP_INFO, API, __FILE__, __LINE__,
|
UpnpPrintf( UPNP_INFO, API, __FILE__, __LINE__,
|
||||||
"Exiting UpnpFinish : UpnpSdkInit is :%d:\n",
|
"Exiting UpnpFinish : UpnpSdkInit is :%d:\n",
|
||||||
UpnpSdkInit );
|
UpnpSdkInit );
|
||||||
|
#ifdef DEBUG
|
||||||
ThreadPoolGetStats( &gRecvThreadPool, &stats );
|
ThreadPoolGetStats( &gRecvThreadPool, &stats );
|
||||||
PrintThreadPoolStats( __FILE__, __LINE__,
|
PrintThreadPoolStats( __FILE__, __LINE__,
|
||||||
"Recv Thread Pool", &stats);
|
"Recv Thread Pool", &stats);
|
||||||
ThreadPoolGetStats( &gSendThreadPool, &stats );
|
ThreadPoolGetStats( &gSendThreadPool, &stats );
|
||||||
PrintThreadPoolStats(__FILE__, __LINE__,
|
PrintThreadPoolStats(__FILE__, __LINE__,
|
||||||
"Send Thread Pool", &stats);
|
"Send Thread Pool", &stats);
|
||||||
UpnpCloseLog();
|
|
||||||
#endif
|
#endif
|
||||||
|
UpnpCloseLog();
|
||||||
|
|
||||||
#ifdef INCLUDE_CLIENT_APIS
|
#ifdef INCLUDE_CLIENT_APIS
|
||||||
ithread_mutex_destroy( &GlobalClientSubscribeMutex );
|
ithread_mutex_destroy( &GlobalClientSubscribeMutex );
|
||||||
@ -3300,9 +3300,9 @@ UpnpDownloadXmlDoc( const char *url,
|
|||||||
UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,
|
UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,
|
||||||
"****************** END OF Parsed XML Doc *****************\n" );
|
"****************** END OF Parsed XML Doc *****************\n" );
|
||||||
ixmlFreeDOMString( xml_buf );
|
ixmlFreeDOMString( xml_buf );
|
||||||
|
#endif
|
||||||
UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,
|
UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,
|
||||||
"Exiting UpnpDownloadXmlDoc\n" );
|
"Exiting UpnpDownloadXmlDoc\n" );
|
||||||
#endif
|
|
||||||
return UPNP_E_SUCCESS;
|
return UPNP_E_SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3635,7 +3635,6 @@ int PrintHandleInfo( IN UpnpClient_Handle Hnd )
|
|||||||
struct Handle_Info * HndInfo;
|
struct Handle_Info * HndInfo;
|
||||||
if (HandleTable[Hnd] != NULL) {
|
if (HandleTable[Hnd] != NULL) {
|
||||||
HndInfo = HandleTable[Hnd];
|
HndInfo = HandleTable[Hnd];
|
||||||
#ifdef DEBUG
|
|
||||||
UpnpPrintf(UPNP_ALL, API, __FILE__, __LINE__,
|
UpnpPrintf(UPNP_ALL, API, __FILE__, __LINE__,
|
||||||
"Printing information for Handle_%d\n", Hnd);
|
"Printing information for Handle_%d\n", Hnd);
|
||||||
UpnpPrintf(UPNP_ALL, API, __FILE__, __LINE__,
|
UpnpPrintf(UPNP_ALL, API, __FILE__, __LINE__,
|
||||||
@ -3644,7 +3643,6 @@ int PrintHandleInfo( IN UpnpClient_Handle Hnd )
|
|||||||
if(HndInfo->HType != HND_CLIENT)
|
if(HndInfo->HType != HND_CLIENT)
|
||||||
UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,
|
UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,
|
||||||
"DescURL_%s\n", HndInfo->DescURL );
|
"DescURL_%s\n", HndInfo->DescURL );
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
return UPNP_E_INVALID_HANDLE;
|
return UPNP_E_INVALID_HANDLE;
|
||||||
|
Loading…
Reference in New Issue
Block a user