summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontend_svr.c27
-rw-r--r--frontend_svr.h5
2 files changed, 8 insertions, 24 deletions
diff --git a/frontend_svr.c b/frontend_svr.c
index 2d4b7233..5463aa31 100644
--- a/frontend_svr.c
+++ b/frontend_svr.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: frontend_svr.c,v 1.78 2009-08-06 11:23:31 phintuka Exp $
+ * $Id: frontend_svr.c,v 1.79 2009-08-18 12:30:34 phintuka Exp $
*
*/
@@ -137,6 +137,8 @@ cXinelibServer::~cXinelibServer()
{
int i;
+ Cancel(-1);
+
CLOSESOCKET(fd_listen);
CLOSESOCKET(fd_discovery);
@@ -145,6 +147,8 @@ cXinelibServer::~cXinelibServer()
for(i=0; i<MAXCLIENTS; i++)
CloseConnection(i);
+ Cancel(3);
+
delete m_StcFuture;
delete m_Futures;
delete m_Scheduler;
@@ -152,23 +156,6 @@ cXinelibServer::~cXinelibServer()
free(m_Header);
}
-void cXinelibServer::Stop(void)
-{
- int i;
-
- TRACEF("cXinelibServer::Stop");
-
- SetStopSignal();
-
- CLOSESOCKET(fd_listen);
- CLOSESOCKET(fd_discovery);
-
- for(i=0; i<MAXCLIENTS; i++)
- CloseConnection(i);
-
- cXinelibThread::Stop();
-}
-
void cXinelibServer::Clear(void)
{
TRACEF("cXinelibServer::Clear");
@@ -1760,7 +1747,7 @@ void cXinelibServer::Action(void)
m_bReady=true;
if(fd_listen>=0)
- while (!GetStopSignal() && fds>=0) {
+ while (Running() && fds>=0) {
fds = 0;
if(fd_listen>=0) {
@@ -1788,7 +1775,7 @@ void cXinelibServer::Action(void)
if(err < 0) {
LOGERR("cXinelibServer: poll failed");
- if(!GetStopSignal())
+ if(Running())
cCondWait::SleepMs(100);
} else if(err == 0) {
diff --git a/frontend_svr.h b/frontend_svr.h
index 73117944..1c657f42 100644
--- a/frontend_svr.h
+++ b/frontend_svr.h
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: frontend_svr.h,v 1.23 2009-03-20 07:20:53 phintuka Exp $
+ * $Id: frontend_svr.h,v 1.24 2009-08-18 12:30:34 phintuka Exp $
*
*/
@@ -34,9 +34,6 @@ class cXinelibServer : public cXinelibThread
cXinelibServer(int listen_port);
virtual ~cXinelibServer();
- // Thread control
- virtual void Stop(void);
-
protected:
virtual void Action(void);