Hi. Using 1.6.9 version to build a AV server.
While streaming, if I send a signal to shut down the server, it will block in the UpnpUnRegisterRootDevice() or UpnpFinish(), waiting for the web server to release some mutex it's holding. I noticed GeexBox uShare behaves the same way (tried 1.1a which does not uses the modified pupnp).
More specifically, when blocking in UpnpUnRegisterRootDevice(), it seems to be in (view it as a callstack :) )
1. ithread_mutex_lock(&gWebMutex);
2. alias_release()
3. web_server_set_alias()
4. UpnpUnRegisterRootDevice()
When blocking in UpnpFinish() it looks like the blocking is in
1. ThreadPoolShutdown(&gMiniServerThreadPool);
2. UPnPFinish()
Are there any special things to do when shutting down the SDK while it's streaming?
Thanks,
Carl Benson
Wind River
Hi Carl,
Is it possible for you to find out which is the other thread blocked in your system (the streaming thread)? And where it is blocked?
My guess is that the streaming thread is locking the mutex in a long operation. It should be an easy fix, just break the operation in pieces and check for shutdown, if not, continue streaming.
Regards,
Marcelo.