git.videolan.org
/
vlc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0597403
)
httpd: use own thread
author
Rémi Denis-Courmont
<rdenis@simphalempin.com>
Sat, 17 Jan 2009 16:42:38 +0000
(18:42 +0200)
committer
Rémi Denis-Courmont
<rdenis@simphalempin.com>
Sat, 17 Jan 2009 16:42:38 +0000
(18:42 +0200)
src/network/httpd.c
patch
|
blob
|
history
diff --git
a/src/network/httpd.c
b/src/network/httpd.c
index
c55077f
..
be405df
100644
(file)
--- a/
src/network/httpd.c
+++ b/
src/network/httpd.c
@@
-95,6
+95,7
@@
struct httpd_host_t
int *fds;
unsigned nfd;
int *fds;
unsigned nfd;
+ vlc_thread_t thread;
vlc_mutex_t lock;
vlc_cond_t wait;
vlc_mutex_t lock;
vlc_cond_t wait;
@@
-963,7
+964,7
@@
void httpd_StreamDelete( httpd_stream_t *stream )
/*****************************************************************************
* Low level
*****************************************************************************/
/*****************************************************************************
* Low level
*****************************************************************************/
-static void* httpd_HostThread( v
lc_object_t
* );
+static void* httpd_HostThread( v
oid
* );
/* create a new host */
httpd_host_t *httpd_HostNew( vlc_object_t *p_this, const char *psz_host,
/* create a new host */
httpd_host_t *httpd_HostNew( vlc_object_t *p_this, const char *psz_host,
@@
-1109,8
+1110,8
@@
httpd_host_t *httpd_TLSHostNew( vlc_object_t *p_this, const char *psz_hostname,
host->p_tls = p_tls;
/* create the thread */
host->p_tls = p_tls;
/* create the thread */
- if( vlc_
thread_create( host, "httpd host thread", httpd_HostThread
,
-
VLC_THREAD_PRIORITY_LOW ) )
+ if( vlc_
clone( &host->thread, httpd_HostThread, host
,
+ VLC_THREAD_PRIORITY_LOW ) )
{
msg_Err( p_this, "cannot spawn http host thread" );
goto error;
{
msg_Err( p_this, "cannot spawn http host thread" );
goto error;
@@
-1172,7
+1173,7
@@
void httpd_HostDelete( httpd_host_t *host )
TAB_REMOVE( httpd->i_host, httpd->host, host );
vlc_object_kill( host );
TAB_REMOVE( httpd->i_host, httpd->host, host );
vlc_object_kill( host );
- vlc_
thread_join( host
);
+ vlc_
join( host->thread, NULL
);
msg_Dbg( host, "HTTP host removed" );
msg_Dbg( host, "HTTP host removed" );
@@
-2037,13
+2038,12
@@
static void httpd_ClientTlsHsOut( httpd_client_t *cl )
}
}
}
}
-static void* httpd_HostThread( v
lc_object_t *p_this
)
+static void* httpd_HostThread( v
oid *data
)
{
{
- httpd_host_t *host =
(httpd_host_t *)p_this
;
+ httpd_host_t *host =
data
;
tls_session_t *p_tls = NULL;
counter_t *p_total_counter = stats_CounterCreate( host, VLC_VAR_INTEGER, STATS_COUNTER );
counter_t *p_active_counter = stats_CounterCreate( host, VLC_VAR_INTEGER, STATS_COUNTER );
tls_session_t *p_tls = NULL;
counter_t *p_total_counter = stats_CounterCreate( host, VLC_VAR_INTEGER, STATS_COUNTER );
counter_t *p_active_counter = stats_CounterCreate( host, VLC_VAR_INTEGER, STATS_COUNTER );
- int canc = vlc_savecancel ();
int evfd = vlc_object_waitpipe( VLC_OBJECT( host ) );
for( ;; )
int evfd = vlc_object_waitpipe( VLC_OBJECT( host ) );
for( ;; )
@@
-2572,6
+2572,5
@@
static void* httpd_HostThread( vlc_object_t *p_this )
stats_CounterClean( p_total_counter );
if( p_active_counter )
stats_CounterClean( p_active_counter );
stats_CounterClean( p_total_counter );
if( p_active_counter )
stats_CounterClean( p_active_counter );
- vlc_restorecancel (canc);
return NULL;
}
return NULL;
}