diff options
author | 2011-04-13 23:22:27 +0000 | |
---|---|---|
committer | 2011-04-13 23:22:27 +0000 | |
commit | 9cc8920afb3e2b1274ce36e1a0a8033783ae15e8 (patch) | |
tree | a140bc8c92ceacaa7fbd5b176568f5007f766e75 /src/dispatch.c | |
parent | 44f1b8154a57621ecd79cd7da8e905fb18b49e56 (diff) |
handle broken torrent files properly
Diffstat (limited to 'src/dispatch.c')
-rw-r--r-- | src/dispatch.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/dispatch.c b/src/dispatch.c index 70a6cc6..b5fc216 100644 --- a/src/dispatch.c +++ b/src/dispatch.c @@ -27,7 +27,7 @@ #include "http.h" #include "json.h" -static void dispatch_async_threadfunc(gpointer task, gpointer user_data); +static void dispatch_async_threadfunc(struct DispatchAsyncData *task, trg_client *client); JsonObject *dispatch(trg_client * client, JsonNode * req, int *status) { @@ -74,22 +74,18 @@ JsonObject *dispatch(trg_client * client, JsonNode * req, int *status) return deserialized; } -static void dispatch_async_threadfunc(gpointer task, gpointer user_data) +static void dispatch_async_threadfunc(struct DispatchAsyncData *task, trg_client *client) { - trg_client *client = (trg_client*)user_data; - struct DispatchAsyncData *args = (struct DispatchAsyncData*)task; - int status; - JsonObject *result = dispatch(client, args->req, &status); - if (args->callback) - args->callback(result, status, args->data); - g_free(args); + JsonObject *result = dispatch(client, task->req, &status); + if (task->callback) + task->callback(result, status, task->data); + g_free(task); } GThreadPool *dispatch_init_pool(trg_client *client) { - GThreadPool *pool = g_thread_pool_new((GFunc)dispatch_async_threadfunc, client, DISPATCH_POOL_SIZE, FALSE, NULL); - return pool; + return g_thread_pool_new((GFunc)dispatch_async_threadfunc, client, DISPATCH_POOL_SIZE, FALSE, NULL); } gboolean dispatch_async(trg_client * client, JsonNode * req, |