diff options
author | Nathan S. Evans <evans@in.tum.de> | 2010-11-05 18:21:50 +0000 |
---|---|---|
committer | Nathan S. Evans <evans@in.tum.de> | 2010-11-05 18:21:50 +0000 |
commit | 75a33a1499cf60ea4364c9aa673816629a6c1413 (patch) | |
tree | 0620da4312bb04de4d7b65074fdd3b0c3dd6cc0e /src/transport/plugin_transport_http.c | |
parent | 7217c601ad30760872823193d62307e7a335d226 (diff) | |
download | gnunet-75a33a1499cf60ea4364c9aa673816629a6c1413.tar.gz gnunet-75a33a1499cf60ea4364c9aa673816629a6c1413.zip |
big scheduler refactoring, expect some issues
Diffstat (limited to 'src/transport/plugin_transport_http.c')
-rw-r--r-- | src/transport/plugin_transport_http.c | 41 |
1 files changed, 19 insertions, 22 deletions
diff --git a/src/transport/plugin_transport_http.c b/src/transport/plugin_transport_http.c index e4c88903f..ad8ced567 100644 --- a/src/transport/plugin_transport_http.c +++ b/src/transport/plugin_transport_http.c | |||
@@ -880,14 +880,14 @@ static void mhd_write_mst_cb (void *cls, | |||
880 | 0); | 880 | 0); |
881 | pc->delay = delay; | 881 | pc->delay = delay; |
882 | if (pc->reset_task != GNUNET_SCHEDULER_NO_TASK) | 882 | if (pc->reset_task != GNUNET_SCHEDULER_NO_TASK) |
883 | GNUNET_SCHEDULER_cancel (pc->plugin->env->sched, pc->reset_task); | 883 | GNUNET_SCHEDULER_cancel (pc->reset_task); |
884 | 884 | ||
885 | if (delay.rel_value > 0) | 885 | if (delay.rel_value > 0) |
886 | { | 886 | { |
887 | #if DEBUG_HTTP | 887 | #if DEBUG_HTTP |
888 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Connection %X: Inbound quota management: delay next read for %llu ms \n", ps, delay.rel_value); | 888 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Connection %X: Inbound quota management: delay next read for %llu ms \n", ps, delay.rel_value); |
889 | #endif | 889 | #endif |
890 | pc->reset_task = GNUNET_SCHEDULER_add_delayed (pc->plugin->env->sched, delay, &reset_inbound_quota_delay, pc); | 890 | pc->reset_task = GNUNET_SCHEDULER_add_delayed (delay, &reset_inbound_quota_delay, pc); |
891 | } | 891 | } |
892 | } | 892 | } |
893 | 893 | ||
@@ -1274,12 +1274,11 @@ http_server_daemon_prepare (struct Plugin *plugin , struct MHD_Daemon *daemon_ha | |||
1274 | { | 1274 | { |
1275 | if (plugin->http_server_task_v4 != GNUNET_SCHEDULER_NO_TASK) | 1275 | if (plugin->http_server_task_v4 != GNUNET_SCHEDULER_NO_TASK) |
1276 | { | 1276 | { |
1277 | GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_server_task_v4); | 1277 | GNUNET_SCHEDULER_cancel(plugin->http_server_task_v4); |
1278 | plugin->http_server_daemon_v4 = GNUNET_SCHEDULER_NO_TASK; | 1278 | plugin->http_server_daemon_v4 = GNUNET_SCHEDULER_NO_TASK; |
1279 | } | 1279 | } |
1280 | 1280 | ||
1281 | ret = GNUNET_SCHEDULER_add_select (plugin->env->sched, | 1281 | ret = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT, |
1282 | GNUNET_SCHEDULER_PRIORITY_DEFAULT, | ||
1283 | GNUNET_SCHEDULER_NO_TASK, | 1282 | GNUNET_SCHEDULER_NO_TASK, |
1284 | tv, | 1283 | tv, |
1285 | wrs, | 1284 | wrs, |
@@ -1291,12 +1290,11 @@ http_server_daemon_prepare (struct Plugin *plugin , struct MHD_Daemon *daemon_ha | |||
1291 | { | 1290 | { |
1292 | if (plugin->http_server_task_v6 != GNUNET_SCHEDULER_NO_TASK) | 1291 | if (plugin->http_server_task_v6 != GNUNET_SCHEDULER_NO_TASK) |
1293 | { | 1292 | { |
1294 | GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_server_task_v6); | 1293 | GNUNET_SCHEDULER_cancel(plugin->http_server_task_v6); |
1295 | plugin->http_server_task_v6 = GNUNET_SCHEDULER_NO_TASK; | 1294 | plugin->http_server_task_v6 = GNUNET_SCHEDULER_NO_TASK; |
1296 | } | 1295 | } |
1297 | 1296 | ||
1298 | ret = GNUNET_SCHEDULER_add_select (plugin->env->sched, | 1297 | ret = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT, |
1299 | GNUNET_SCHEDULER_PRIORITY_DEFAULT, | ||
1300 | GNUNET_SCHEDULER_NO_TASK, | 1298 | GNUNET_SCHEDULER_NO_TASK, |
1301 | tv, | 1299 | tv, |
1302 | wrs, | 1300 | wrs, |
@@ -1586,14 +1584,14 @@ static void curl_receive_mst_cb (void *cls, | |||
1586 | 1584 | ||
1587 | pc->delay = delay; | 1585 | pc->delay = delay; |
1588 | if (pc->reset_task != GNUNET_SCHEDULER_NO_TASK) | 1586 | if (pc->reset_task != GNUNET_SCHEDULER_NO_TASK) |
1589 | GNUNET_SCHEDULER_cancel (pc->plugin->env->sched, pc->reset_task); | 1587 | GNUNET_SCHEDULER_cancel (pc->reset_task); |
1590 | 1588 | ||
1591 | if (delay.rel_value > 0) | 1589 | if (delay.rel_value > 0) |
1592 | { | 1590 | { |
1593 | #if DEBUG_HTTP | 1591 | #if DEBUG_HTTP |
1594 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Connection %X: Inbound quota management: delay next read for %llu ms \n", ps, delay.abs_value); | 1592 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Connection %X: Inbound quota management: delay next read for %llu ms \n", ps, delay.abs_value); |
1595 | #endif | 1593 | #endif |
1596 | pc->reset_task = GNUNET_SCHEDULER_add_delayed (pc->plugin->env->sched, delay, &reset_inbound_quota_delay, pc); | 1594 | pc->reset_task = GNUNET_SCHEDULER_add_delayed (delay, &reset_inbound_quota_delay, pc); |
1597 | } | 1595 | } |
1598 | } | 1596 | } |
1599 | 1597 | ||
@@ -1820,7 +1818,7 @@ static int curl_schedule(struct Plugin *plugin) | |||
1820 | /* Cancel previous scheduled task */ | 1818 | /* Cancel previous scheduled task */ |
1821 | if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) | 1819 | if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) |
1822 | { | 1820 | { |
1823 | GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_curl_task); | 1821 | GNUNET_SCHEDULER_cancel(plugin->http_curl_task); |
1824 | plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; | 1822 | plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; |
1825 | } | 1823 | } |
1826 | 1824 | ||
@@ -1851,8 +1849,7 @@ static int curl_schedule(struct Plugin *plugin) | |||
1851 | gws = GNUNET_NETWORK_fdset_create (); | 1849 | gws = GNUNET_NETWORK_fdset_create (); |
1852 | GNUNET_NETWORK_fdset_copy_native (grs, &rs, max + 1); | 1850 | GNUNET_NETWORK_fdset_copy_native (grs, &rs, max + 1); |
1853 | GNUNET_NETWORK_fdset_copy_native (gws, &ws, max + 1); | 1851 | GNUNET_NETWORK_fdset_copy_native (gws, &ws, max + 1); |
1854 | plugin->http_curl_task = GNUNET_SCHEDULER_add_select (plugin->env->sched, | 1852 | plugin->http_curl_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT, |
1855 | GNUNET_SCHEDULER_PRIORITY_DEFAULT, | ||
1856 | GNUNET_SCHEDULER_NO_TASK, | 1853 | GNUNET_SCHEDULER_NO_TASK, |
1857 | (to == -1) ? GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5) : GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, to), | 1854 | (to == -1) ? GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5) : GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, to), |
1858 | grs, | 1855 | grs, |
@@ -1958,10 +1955,10 @@ static int send_check_connections (struct Plugin *plugin, struct Session *ps) | |||
1958 | } | 1955 | } |
1959 | if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) | 1956 | if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) |
1960 | { | 1957 | { |
1961 | GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_curl_task); | 1958 | GNUNET_SCHEDULER_cancel(plugin->http_curl_task); |
1962 | plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; | 1959 | plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; |
1963 | } | 1960 | } |
1964 | plugin->http_curl_task = GNUNET_SCHEDULER_add_now (plugin->env->sched, &curl_perform, plugin); | 1961 | plugin->http_curl_task = GNUNET_SCHEDULER_add_now (&curl_perform, plugin); |
1965 | } | 1962 | } |
1966 | 1963 | ||
1967 | /* waiting for receive direction */ | 1964 | /* waiting for receive direction */ |
@@ -1989,10 +1986,10 @@ static int send_check_connections (struct Plugin *plugin, struct Session *ps) | |||
1989 | ps->send_active=GNUNET_YES; | 1986 | ps->send_active=GNUNET_YES; |
1990 | if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) | 1987 | if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) |
1991 | { | 1988 | { |
1992 | GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_curl_task); | 1989 | GNUNET_SCHEDULER_cancel(plugin->http_curl_task); |
1993 | plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; | 1990 | plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; |
1994 | } | 1991 | } |
1995 | plugin->http_curl_task = GNUNET_SCHEDULER_add_now (plugin->env->sched, &curl_perform, plugin); | 1992 | plugin->http_curl_task = GNUNET_SCHEDULER_add_now (&curl_perform, plugin); |
1996 | return GNUNET_YES; | 1993 | return GNUNET_YES; |
1997 | } | 1994 | } |
1998 | else | 1995 | else |
@@ -2058,10 +2055,10 @@ static int send_check_connections (struct Plugin *plugin, struct Session *ps) | |||
2058 | } | 2055 | } |
2059 | if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) | 2056 | if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) |
2060 | { | 2057 | { |
2061 | GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_curl_task); | 2058 | GNUNET_SCHEDULER_cancel(plugin->http_curl_task); |
2062 | plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; | 2059 | plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; |
2063 | } | 2060 | } |
2064 | plugin->http_curl_task = GNUNET_SCHEDULER_add_now (plugin->env->sched, &curl_perform, plugin); | 2061 | plugin->http_curl_task = GNUNET_SCHEDULER_add_now (&curl_perform, plugin); |
2065 | return GNUNET_YES; | 2062 | return GNUNET_YES; |
2066 | } | 2063 | } |
2067 | if (ps->direction == INBOUND) | 2064 | if (ps->direction == INBOUND) |
@@ -2658,13 +2655,13 @@ LIBGNUNET_PLUGIN_TRANSPORT_DONE (void *cls) | |||
2658 | 2655 | ||
2659 | if ( plugin->http_server_task_v4 != GNUNET_SCHEDULER_NO_TASK) | 2656 | if ( plugin->http_server_task_v4 != GNUNET_SCHEDULER_NO_TASK) |
2660 | { | 2657 | { |
2661 | GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_server_task_v4); | 2658 | GNUNET_SCHEDULER_cancel(plugin->http_server_task_v4); |
2662 | plugin->http_server_task_v4 = GNUNET_SCHEDULER_NO_TASK; | 2659 | plugin->http_server_task_v4 = GNUNET_SCHEDULER_NO_TASK; |
2663 | } | 2660 | } |
2664 | 2661 | ||
2665 | if ( plugin->http_server_task_v6 != GNUNET_SCHEDULER_NO_TASK) | 2662 | if ( plugin->http_server_task_v6 != GNUNET_SCHEDULER_NO_TASK) |
2666 | { | 2663 | { |
2667 | GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_server_task_v6); | 2664 | GNUNET_SCHEDULER_cancel(plugin->http_server_task_v6); |
2668 | plugin->http_server_task_v6 = GNUNET_SCHEDULER_NO_TASK; | 2665 | plugin->http_server_task_v6 = GNUNET_SCHEDULER_NO_TASK; |
2669 | } | 2666 | } |
2670 | 2667 | ||
@@ -2703,7 +2700,7 @@ LIBGNUNET_PLUGIN_TRANSPORT_DONE (void *cls) | |||
2703 | 2700 | ||
2704 | if ( plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) | 2701 | if ( plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) |
2705 | { | 2702 | { |
2706 | GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_curl_task); | 2703 | GNUNET_SCHEDULER_cancel(plugin->http_curl_task); |
2707 | plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; | 2704 | plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; |
2708 | } | 2705 | } |
2709 | 2706 | ||