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:
Max Kellermann 2011-09-16 08:31:17 +02:00
parent bf1eb46b87
commit 856b0e6886
1 changed files with 1 additions and 48 deletions

View File

@ -147,11 +147,6 @@ static struct {
GSList *fds;
/**
* When this is non-zero, then an update of #fds is scheduled.
*/
guint dirty_source_id;
#if LIBCURL_VERSION_NUM >= 0x070f04
/**
* 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.
*/
@ -357,7 +320,7 @@ input_curl_easy_add(struct input_curl *c, GError **error_r)
return false;
}
input_curl_schedule_update();
curl_update_fds();
return true;
}
@ -721,16 +684,6 @@ curl_destroy_sources(G_GNUC_UNUSED gpointer data)
{
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;
}