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

View File

@@ -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;
} }