input/curl: remove _schedule_update()
Call _update_fds() directly. This is possible because it's only called from within the I/O thread.
This commit is contained in:
@@ -147,11 +147,6 @@ static struct {
|
|||||||
|
|
||||||
GSList *fds;
|
GSList *fds;
|
||||||
|
|
||||||
/**
|
|
||||||
* When this is non-zero, then an update of #fds is scheduled.
|
|
||||||
*/
|
|
||||||
guint dirty_source_id;
|
|
||||||
|
|
||||||
#if LIBCURL_VERSION_NUM >= 0x070f04
|
#if LIBCURL_VERSION_NUM >= 0x070f04
|
||||||
/**
|
/**
|
||||||
* Did CURL give us a timeout? If yes, then we need to call
|
* Did CURL give us a timeout? If yes, then we need to call
|
||||||
@@ -304,38 +299,6 @@ curl_update_fds(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Callback for curl_schedule_update() that runs in the I/O thread.
|
|
||||||
*/
|
|
||||||
static gboolean
|
|
||||||
input_curl_dirty_callback(G_GNUC_UNUSED gpointer data)
|
|
||||||
{
|
|
||||||
assert(io_thread_inside());
|
|
||||||
assert(curl.dirty_source_id != 0 || curl.requests == NULL);
|
|
||||||
curl.dirty_source_id = 0;
|
|
||||||
|
|
||||||
curl_update_fds();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Schedule a refresh of curl.fds. Does nothing if that is already
|
|
||||||
* scheduled.
|
|
||||||
*
|
|
||||||
* No lock needed.
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
input_curl_schedule_update(void)
|
|
||||||
{
|
|
||||||
if (curl.dirty_source_id != 0)
|
|
||||||
/* already scheduled */
|
|
||||||
return;
|
|
||||||
|
|
||||||
curl.dirty_source_id =
|
|
||||||
io_thread_idle_add(input_curl_dirty_callback, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs in the I/O thread. No lock needed.
|
* Runs in the I/O thread. No lock needed.
|
||||||
*/
|
*/
|
||||||
@@ -357,7 +320,7 @@ input_curl_easy_add(struct input_curl *c, GError **error_r)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
input_curl_schedule_update();
|
curl_update_fds();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -721,16 +684,6 @@ curl_destroy_sources(G_GNUC_UNUSED gpointer data)
|
|||||||
{
|
{
|
||||||
g_source_destroy(curl.source);
|
g_source_destroy(curl.source);
|
||||||
|
|
||||||
if (curl.dirty_source_id != 0) {
|
|
||||||
GSource *source =
|
|
||||||
g_main_context_find_source_by_id(io_thread_context(),
|
|
||||||
curl.dirty_source_id);
|
|
||||||
assert(source != NULL);
|
|
||||||
curl.dirty_source_id = 0;
|
|
||||||
|
|
||||||
g_source_destroy(source);
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user