[xiph-cvs] cvs commit: icecast/src source.c

Brendan brendan at xiph.org
Fri Jul 4 23:21:01 PDT 2003



brendan     03/07/05 02:21:01

  Modified:    src      source.c
  Log:
  Deadlock in transparent relay code. Patch by Ned Wolpert.

Revision  Changes    Path
1.37      +9 -2      icecast/src/source.c

Index: source.c
===================================================================
RCS file: /cvs/ice/icecast/src/source.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -p -u -r1.36 -r1.37
--- source.c	10 Apr 2002 22:42:33 -0000	1.36
+++ source.c	5 Jul 2003 06:21:00 -0000	1.37
@@ -684,8 +684,15 @@ find_mount_with_req (request_t *req)
                 int err;
 
                 xa_debug (1, "DEBUG: Trying transparent proxy with host: [%s]", req->host);
-		if ((sourcecon = relay_pull_stream (req, &err)))
-		{
+		thread_mutex_unlock (&info.mount_mutex);
+		thread_mutex_unlock (&info.source_mutex);
+		thread_mutex_unlock (&info.double_mutex);
+		sourcecon = relay_pull_stream (req, &err);
+		thread_mutex_lock (&info.double_mutex);
+		thread_mutex_lock (&info.source_mutex);
+		thread_mutex_lock (&info.mount_mutex);
+		
+		if (sourcecon) {
                         sourcecon->food.source->type = on_demand_pull_e;
                         return sourcecon;
                 } else {

<p><p>--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'cvs-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the commits mailing list