gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r37005 - in gnunet: doc src src/arm src/ats src/ats-tests s


From: gnunet
Subject: [GNUnet-SVN] r37005 - in gnunet: doc src src/arm src/ats src/ats-tests src/ats-tool src/cadet src/consensus src/conversation src/core src/datastore src/dht src/dns src/dv src/exit src/fragmentation src/fs src/gns src/hostlist src/identity src/identity-provider src/include src/multicast src/namecache src/namestore src/nat src/nse src/peerinfo src/peerinfo-tool src/peerstore src/pq src/psyc src/psycstore src/pt src/regex src/rest src/revocation src/rps src/scalarproduct src/secretsharing src/set src/social src/statistics src/template src/testbed src/testing src/topology src/transport src/util src/vpn
Date: Sun, 10 Apr 2016 01:14:03 +0200

Author: grothoff
Date: 2016-04-10 01:14:03 +0200 (Sun, 10 Apr 2016)
New Revision: 37005

Modified:
   gnunet/doc/testbed_test.c
   gnunet/src/Makefile.am
   gnunet/src/arm/arm_api.c
   gnunet/src/arm/arm_monitor_api.c
   gnunet/src/arm/gnunet-arm.c
   gnunet/src/arm/gnunet-service-arm.c
   gnunet/src/arm/test_arm_api.c
   gnunet/src/arm/test_exponential_backoff.c
   gnunet/src/arm/test_gnunet_service_arm.c
   gnunet/src/ats-tests/ats-testing-experiment.c
   gnunet/src/ats-tests/ats-testing-log.c
   gnunet/src/ats-tests/ats-testing-preferences.c
   gnunet/src/ats-tests/ats-testing-traffic.c
   gnunet/src/ats-tests/ats-testing.c
   gnunet/src/ats-tests/gnunet-solver-eval.c
   gnunet/src/ats-tests/perf_ats.c
   gnunet/src/ats-tests/perf_ats_logging.c
   gnunet/src/ats-tool/gnunet-ats.c
   gnunet/src/ats/ats_api_connectivity.c
   gnunet/src/ats/ats_api_performance.c
   gnunet/src/ats/ats_api_scanner.c
   gnunet/src/ats/ats_api_scheduling.c
   gnunet/src/ats/gnunet-ats-solver-eval.c
   gnunet/src/ats/gnunet-service-ats.c
   gnunet/src/ats/gnunet-service-ats_preferences.c
   gnunet/src/ats/plugin_ats_ril.c
   gnunet/src/ats/test_ats_lib.c
   gnunet/src/cadet/cadet_api.c
   gnunet/src/cadet/cadet_path.c
   gnunet/src/cadet/gnunet-cadet-profiler.c
   gnunet/src/cadet/gnunet-cadet.c
   gnunet/src/cadet/gnunet-service-cadet.c
   gnunet/src/cadet/gnunet-service-cadet_channel.c
   gnunet/src/cadet/gnunet-service-cadet_connection.c
   gnunet/src/cadet/gnunet-service-cadet_dht.c
   gnunet/src/cadet/gnunet-service-cadet_peer.c
   gnunet/src/cadet/gnunet-service-cadet_tunnel.c
   gnunet/src/cadet/test_cadet.c
   gnunet/src/cadet/test_cadet_local.c
   gnunet/src/cadet/test_cadet_single.c
   gnunet/src/consensus/gnunet-consensus-profiler.c
   gnunet/src/consensus/gnunet-service-consensus.c
   gnunet/src/consensus/test_consensus_api.c
   gnunet/src/conversation/gnunet-conversation-test.c
   gnunet/src/conversation/gnunet-conversation.c
   gnunet/src/conversation/gnunet-service-conversation.c
   gnunet/src/conversation/test_conversation_api.c
   gnunet/src/conversation/test_conversation_api_reject.c
   gnunet/src/conversation/test_conversation_api_twocalls.c
   gnunet/src/core/core_api.c
   gnunet/src/core/gnunet-core.c
   gnunet/src/core/gnunet-service-core.c
   gnunet/src/core/gnunet-service-core_kx.c
   gnunet/src/core/gnunet-service-core_sessions.c
   gnunet/src/core/test_core_api.c
   gnunet/src/core/test_core_api_mq.c
   gnunet/src/core/test_core_api_reliability.c
   gnunet/src/core/test_core_api_send_to_self.c
   gnunet/src/core/test_core_api_start_only.c
   gnunet/src/core/test_core_quota_compliance.c
   gnunet/src/datastore/datastore_api.c
   gnunet/src/datastore/gnunet-datastore.c
   gnunet/src/datastore/gnunet-service-datastore.c
   gnunet/src/datastore/perf_datastore_api.c
   gnunet/src/datastore/perf_plugin_datastore.c
   gnunet/src/datastore/test_datastore_api.c
   gnunet/src/datastore/test_datastore_api_management.c
   gnunet/src/datastore/test_plugin_datastore.c
   gnunet/src/dht/dht_api.c
   gnunet/src/dht/gnunet-dht-get.c
   gnunet/src/dht/gnunet-dht-monitor.c
   gnunet/src/dht/gnunet-dht-put.c
   gnunet/src/dht/gnunet-service-dht.c
   gnunet/src/dht/gnunet-service-dht_clients.c
   gnunet/src/dht/gnunet-service-dht_neighbours.c
   gnunet/src/dht/gnunet-service-wdht.c
   gnunet/src/dht/gnunet-service-wdht_clients.c
   gnunet/src/dht/gnunet-service-wdht_neighbours.c
   gnunet/src/dht/gnunet-service-xdht.c
   gnunet/src/dht/gnunet-service-xdht_clients.c
   gnunet/src/dht/gnunet-service-xdht_neighbours.c
   gnunet/src/dht/gnunet_dht_profiler.c
   gnunet/src/dht/test_dht_api.c
   gnunet/src/dht/test_dht_monitor.c
   gnunet/src/dht/test_dht_topo.c
   gnunet/src/dns/dns_api.c
   gnunet/src/dns/dnsstub.c
   gnunet/src/dns/gnunet-dns-monitor.c
   gnunet/src/dns/gnunet-dns-redirector.c
   gnunet/src/dns/gnunet-service-dns.c
   gnunet/src/dv/gnunet-dv.c
   gnunet/src/dv/gnunet-service-dv.c
   gnunet/src/dv/test_transport_dv.c
   gnunet/src/exit/gnunet-daemon-exit.c
   gnunet/src/fragmentation/defragmentation.c
   gnunet/src/fragmentation/fragmentation.c
   gnunet/src/fragmentation/test_fragmentation.c
   gnunet/src/fragmentation/test_fragmentation_parallel.c
   gnunet/src/fs/fs_api.c
   gnunet/src/fs/fs_api.h
   gnunet/src/fs/fs_dirmetascan.c
   gnunet/src/fs/fs_download.c
   gnunet/src/fs/fs_publish.c
   gnunet/src/fs/fs_publish_ksk.c
   gnunet/src/fs/fs_publish_ublock.c
   gnunet/src/fs/fs_search.c
   gnunet/src/fs/fs_test_lib.c
   gnunet/src/fs/fs_tree.c
   gnunet/src/fs/fs_unindex.c
   gnunet/src/fs/gnunet-auto-share.c
   gnunet/src/fs/gnunet-daemon-fsprofiler.c
   gnunet/src/fs/gnunet-download.c
   gnunet/src/fs/gnunet-fs-profiler.c
   gnunet/src/fs/gnunet-publish.c
   gnunet/src/fs/gnunet-search.c
   gnunet/src/fs/gnunet-service-fs.c
   gnunet/src/fs/gnunet-service-fs_cadet_client.c
   gnunet/src/fs/gnunet-service-fs_cadet_server.c
   gnunet/src/fs/gnunet-service-fs_cp.c
   gnunet/src/fs/gnunet-service-fs_lc.c
   gnunet/src/fs/gnunet-service-fs_pe.c
   gnunet/src/fs/gnunet-service-fs_pr.c
   gnunet/src/fs/gnunet-service-fs_push.c
   gnunet/src/fs/gnunet-service-fs_put.c
   gnunet/src/fs/gnunet-unindex.c
   gnunet/src/fs/perf_gnunet_service_fs_p2p.c
   gnunet/src/fs/perf_gnunet_service_fs_p2p_respect.c
   gnunet/src/fs/test_fs_download.c
   gnunet/src/fs/test_fs_download_persistence.c
   gnunet/src/fs/test_fs_list_indexed.c
   gnunet/src/fs/test_fs_namespace.c
   gnunet/src/fs/test_fs_publish.c
   gnunet/src/fs/test_fs_publish_persistence.c
   gnunet/src/fs/test_fs_search.c
   gnunet/src/fs/test_fs_search_persistence.c
   gnunet/src/fs/test_fs_search_probes.c
   gnunet/src/fs/test_fs_search_with_and.c
   gnunet/src/fs/test_fs_test_lib.c
   gnunet/src/fs/test_fs_unindex.c
   gnunet/src/fs/test_fs_unindex_persistence.c
   gnunet/src/fs/test_gnunet_service_fs_migration.c
   gnunet/src/fs/test_gnunet_service_fs_p2p.c
   gnunet/src/gns/gns_api.c
   gnunet/src/gns/gnunet-bcd.c
   gnunet/src/gns/gnunet-dns2gns.c
   gnunet/src/gns/gnunet-gns-helper-service-w32.c
   gnunet/src/gns/gnunet-gns-import.c
   gnunet/src/gns/gnunet-gns-proxy.c
   gnunet/src/gns/gnunet-gns.c
   gnunet/src/gns/gnunet-service-gns.c
   gnunet/src/gns/gnunet-service-gns_resolver.c
   gnunet/src/gns/plugin_rest_gns.c
   gnunet/src/gns/test_gns_proxy.c
   gnunet/src/hostlist/gnunet-daemon-hostlist.c
   gnunet/src/hostlist/gnunet-daemon-hostlist_client.c
   gnunet/src/hostlist/gnunet-daemon-hostlist_server.c
   gnunet/src/hostlist/test_gnunet_daemon_hostlist.c
   gnunet/src/hostlist/test_gnunet_daemon_hostlist_learning.c
   gnunet/src/hostlist/test_gnunet_daemon_hostlist_reconnect.c
   gnunet/src/identity-provider/gnunet-service-identity-provider.c
   gnunet/src/identity-provider/identity_provider_api.c
   gnunet/src/identity-provider/plugin_rest_identity_provider.c
   gnunet/src/identity/gnunet-identity.c
   gnunet/src/identity/gnunet-service-identity.c
   gnunet/src/identity/identity_api.c
   gnunet/src/identity/plugin_rest_identity.c
   gnunet/src/identity/test_identity.c
   gnunet/src/identity/test_identity_defaults.c
   gnunet/src/include/gnunet_os_lib.h
   gnunet/src/include/gnunet_scheduler_lib.h
   gnunet/src/include/gnunet_server_lib.h
   gnunet/src/multicast/gnunet-service-multicast.c
   gnunet/src/multicast/test_multicast.c
   gnunet/src/namecache/gnunet-namecache.c
   gnunet/src/namecache/gnunet-service-namecache.c
   gnunet/src/namecache/namecache_api.c
   gnunet/src/namecache/test_namecache_api_cache_block.c
   gnunet/src/namestore/gnunet-namestore-fcfsd.c
   gnunet/src/namestore/gnunet-namestore.c
   gnunet/src/namestore/gnunet-service-namestore.c
   gnunet/src/namestore/namestore_api.c
   gnunet/src/namestore/plugin_rest_namestore.c
   gnunet/src/namestore/test_namestore_api_lookup_nick.c
   gnunet/src/namestore/test_namestore_api_lookup_private.c
   gnunet/src/namestore/test_namestore_api_lookup_public.c
   gnunet/src/namestore/test_namestore_api_lookup_shadow.c
   gnunet/src/namestore/test_namestore_api_lookup_shadow_filter.c
   gnunet/src/namestore/test_namestore_api_monitoring.c
   gnunet/src/namestore/test_namestore_api_monitoring_existing.c
   gnunet/src/namestore/test_namestore_api_remove.c
   gnunet/src/namestore/test_namestore_api_remove_not_existing_record.c
   gnunet/src/namestore/test_namestore_api_store.c
   gnunet/src/namestore/test_namestore_api_store_update.c
   gnunet/src/namestore/test_namestore_api_zone_iteration.c
   gnunet/src/namestore/test_namestore_api_zone_iteration_nick.c
   gnunet/src/namestore/test_namestore_api_zone_iteration_specific_zone.c
   gnunet/src/namestore/test_namestore_api_zone_iteration_stop.c
   gnunet/src/namestore/test_namestore_api_zone_to_name.c
   gnunet/src/nat/gnunet-nat-server.c
   gnunet/src/nat/nat.c
   gnunet/src/nat/nat_auto.c
   gnunet/src/nat/nat_mini.c
   gnunet/src/nat/nat_test.c
   gnunet/src/nat/test_nat.c
   gnunet/src/nat/test_nat_mini.c
   gnunet/src/nat/test_nat_test.c
   gnunet/src/nat/test_stun.c
   gnunet/src/nse/gnunet-nse-profiler.c
   gnunet/src/nse/gnunet-nse.c
   gnunet/src/nse/gnunet-service-nse.c
   gnunet/src/nse/nse_api.c
   gnunet/src/nse/test_nse_api.c
   gnunet/src/nse/test_nse_multipeer.c
   gnunet/src/peerinfo-tool/gnunet-peerinfo.c
   gnunet/src/peerinfo/gnunet-service-peerinfo.c
   gnunet/src/peerinfo/peerinfo_api.c
   gnunet/src/peerinfo/peerinfo_api_notify.c
   gnunet/src/peerinfo/test_peerinfo_api_notify_friend_only.c
   gnunet/src/peerstore/gnunet-peerstore.c
   gnunet/src/peerstore/gnunet-service-peerstore.c
   gnunet/src/peerstore/peerstore_api.c
   gnunet/src/peerstore/test_peerstore_api_sync.c
   gnunet/src/pq/test_pq.c
   gnunet/src/psyc/gnunet-service-psyc.c
   gnunet/src/psyc/test_psyc.c
   gnunet/src/psycstore/gnunet-service-psycstore.c
   gnunet/src/psycstore/psycstore_api.c
   gnunet/src/psycstore/test_psycstore.c
   gnunet/src/pt/gnunet-daemon-pt.c
   gnunet/src/pt/test_gns_vpn.c
   gnunet/src/pt/test_gnunet_vpn.c
   gnunet/src/regex/gnunet-daemon-regexprofiler.c
   gnunet/src/regex/gnunet-regex-profiler.c
   gnunet/src/regex/gnunet-regex-simulation-profiler.c
   gnunet/src/regex/gnunet-service-regex.c
   gnunet/src/regex/test_regex_api.c
   gnunet/src/regex/test_regex_integration.c
   gnunet/src/rest/gnunet-rest-server.c
   gnunet/src/revocation/gnunet-revocation.c
   gnunet/src/revocation/gnunet-service-revocation.c
   gnunet/src/revocation/test_revocation.c
   gnunet/src/rps/gnunet-rps.c
   gnunet/src/rps/gnunet-service-rps.c
   gnunet/src/rps/gnunet-service-rps_sampler.c
   gnunet/src/rps/test_rps.c
   gnunet/src/scalarproduct/gnunet-scalarproduct.c
   gnunet/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c
   gnunet/src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c
   gnunet/src/scalarproduct/gnunet-service-scalarproduct_alice.c
   gnunet/src/scalarproduct/gnunet-service-scalarproduct_bob.c
   gnunet/src/secretsharing/gnunet-secretsharing-profiler.c
   gnunet/src/secretsharing/gnunet-service-secretsharing.c
   gnunet/src/secretsharing/test_secretsharing_api.c
   gnunet/src/set/gnunet-service-set.c
   gnunet/src/set/gnunet-set-profiler.c
   gnunet/src/set/set_api.c
   gnunet/src/set/test_set_api.c
   gnunet/src/set/test_set_union_copy.c
   gnunet/src/set/test_set_union_result_symmetric.c
   gnunet/src/social/gnunet-service-social.c
   gnunet/src/social/test_social.c
   gnunet/src/statistics/gnunet-service-statistics.c
   gnunet/src/statistics/gnunet-statistics.c
   gnunet/src/statistics/statistics_api.c
   gnunet/src/statistics/test_statistics_api_watch.c
   gnunet/src/statistics/test_statistics_api_watch_zero_value.c
   gnunet/src/template/gnunet-service-template.c
   gnunet/src/testbed/gnunet-daemon-latency-logger.c
   gnunet/src/testbed/gnunet-daemon-testbed-blacklist.c
   gnunet/src/testbed/gnunet-daemon-testbed-underlay.c
   gnunet/src/testbed/gnunet-helper-testbed.c
   gnunet/src/testbed/gnunet-service-test-barriers.c
   gnunet/src/testbed/gnunet-service-testbed-logger.c
   gnunet/src/testbed/gnunet-service-testbed.c
   gnunet/src/testbed/gnunet-service-testbed.h
   gnunet/src/testbed/gnunet-service-testbed_barriers.c
   gnunet/src/testbed/gnunet-service-testbed_connectionpool.c
   gnunet/src/testbed/gnunet-service-testbed_cpustatus.c
   gnunet/src/testbed/gnunet-service-testbed_links.c
   gnunet/src/testbed/gnunet-service-testbed_oc.c
   gnunet/src/testbed/gnunet-service-testbed_peers.c
   gnunet/src/testbed/gnunet-testbed-profiler.c
   gnunet/src/testbed/gnunet_testbed_mpi_spawn.c
   gnunet/src/testbed/test_gnunet_helper_testbed.c
   gnunet/src/testbed/test_testbed_api.c
   gnunet/src/testbed/test_testbed_api_2peers_1controller.c
   gnunet/src/testbed/test_testbed_api_3peers_3controllers.c
   gnunet/src/testbed/test_testbed_api_barriers.c
   gnunet/src/testbed/test_testbed_api_controllerlink.c
   gnunet/src/testbed/test_testbed_api_hosts.c
   gnunet/src/testbed/test_testbed_api_operations.c
   gnunet/src/testbed/test_testbed_api_peer_reconfiguration.c
   gnunet/src/testbed/test_testbed_api_peers_manage_services.c
   gnunet/src/testbed/test_testbed_api_statistics.c
   gnunet/src/testbed/test_testbed_api_test.c
   gnunet/src/testbed/test_testbed_api_testbed_run.c
   gnunet/src/testbed/test_testbed_api_topology.c
   gnunet/src/testbed/test_testbed_api_topology_clique.c
   gnunet/src/testbed/test_testbed_logger_api.c
   gnunet/src/testbed/test_testbed_underlay.c
   gnunet/src/testbed/testbed_api_hosts.c
   gnunet/src/testbed/testbed_api_operations.c
   gnunet/src/testbed/testbed_api_statistics.c
   gnunet/src/testbed/testbed_api_testbed.c
   gnunet/src/testbed/testbed_logger_api.c
   gnunet/src/testing/gnunet-testing.c
   gnunet/src/testing/test_testing_peerstartup.c
   gnunet/src/testing/test_testing_peerstartup2.c
   gnunet/src/testing/test_testing_sharedservices.c
   gnunet/src/testing/testing.c
   gnunet/src/topology/gnunet-daemon-topology.c
   gnunet/src/transport/gnunet-service-transport.c
   gnunet/src/transport/gnunet-service-transport_ats.c
   gnunet/src/transport/gnunet-service-transport_blacklist.c
   gnunet/src/transport/gnunet-service-transport_hello.c
   gnunet/src/transport/gnunet-service-transport_manipulation.c
   gnunet/src/transport/gnunet-service-transport_neighbours.c
   gnunet/src/transport/gnunet-service-transport_validation.c
   gnunet/src/transport/gnunet-transport-profiler.c
   gnunet/src/transport/gnunet-transport.c
   gnunet/src/transport/plugin_transport_http_client.c
   gnunet/src/transport/plugin_transport_http_server.c
   gnunet/src/transport/plugin_transport_tcp.c
   gnunet/src/transport/plugin_transport_udp.c
   gnunet/src/transport/plugin_transport_udp_broadcasting.c
   gnunet/src/transport/plugin_transport_unix.c
   gnunet/src/transport/plugin_transport_wlan.c
   gnunet/src/transport/test_plugin_transport.c
   gnunet/src/transport/test_quota_compliance.c
   gnunet/src/transport/test_transport_address_switch.c
   gnunet/src/transport/test_transport_api.c
   gnunet/src/transport/test_transport_api_bidirectional_connect.c
   gnunet/src/transport/test_transport_api_blacklisting.c
   gnunet/src/transport/test_transport_api_disconnect.c
   gnunet/src/transport/test_transport_api_limited_sockets.c
   gnunet/src/transport/test_transport_api_manipulation_cfg.c
   gnunet/src/transport/test_transport_api_manipulation_recv_tcp.c
   gnunet/src/transport/test_transport_api_manipulation_send_tcp.c
   gnunet/src/transport/test_transport_api_monitor_peers.c
   gnunet/src/transport/test_transport_api_monitor_validation.c
   gnunet/src/transport/test_transport_api_reliability.c
   gnunet/src/transport/test_transport_api_restart_1peer.c
   gnunet/src/transport/test_transport_api_restart_2peers.c
   gnunet/src/transport/test_transport_api_timeout.c
   gnunet/src/transport/test_transport_blacklisting.c
   gnunet/src/transport/test_transport_startonly.c
   gnunet/src/transport/transport-testing.c
   gnunet/src/transport/transport_api.c
   gnunet/src/transport/transport_api_monitor_peers.c
   gnunet/src/transport/transport_api_monitor_plugins.c
   gnunet/src/transport/transport_api_monitor_validation.c
   gnunet/src/util/bandwidth.c
   gnunet/src/util/client.c
   gnunet/src/util/client_manager.c
   gnunet/src/util/connection.c
   gnunet/src/util/crypto_hash_file.c
   gnunet/src/util/disk_iterator.c
   gnunet/src/util/gnunet-scrypt.c
   gnunet/src/util/gnunet-uri.c
   gnunet/src/util/helper.c
   gnunet/src/util/mq.c
   gnunet/src/util/os_priority.c
   gnunet/src/util/program.c
   gnunet/src/util/resolver_api.c
   gnunet/src/util/scheduler.c
   gnunet/src/util/server.c
   gnunet/src/util/service.c
   gnunet/src/util/socks.c
   gnunet/src/util/speedup.c
   gnunet/src/util/test_client.c
   gnunet/src/util/test_common_logging_runtime_loglevels.c
   gnunet/src/util/test_connection.c
   gnunet/src/util/test_connection_addressing.c
   gnunet/src/util/test_connection_receive_cancel.c
   gnunet/src/util/test_connection_timeout.c
   gnunet/src/util/test_connection_timeout_no_connect.c
   gnunet/src/util/test_connection_transmit_cancel.c
   gnunet/src/util/test_crypto_hash.c
   gnunet/src/util/test_disk.c
   gnunet/src/util/test_mq_client.c
   gnunet/src/util/test_os_start_process.c
   gnunet/src/util/test_scheduler.c
   gnunet/src/util/test_scheduler_delay.c
   gnunet/src/util/test_server.c
   gnunet/src/util/test_server_disconnect.c
   gnunet/src/util/test_server_with_client.c
   gnunet/src/util/test_server_with_client_unix.c
   gnunet/src/util/test_service.c
   gnunet/src/util/test_socks.c
   gnunet/src/util/test_speedup.c
   gnunet/src/vpn/gnunet-service-vpn.c
   gnunet/src/vpn/gnunet-vpn.c
   gnunet/src/vpn/vpn_api.c
Log:
small API change: do no longer pass rarely needed GNUNET_SCHEDULER_TaskContext 
to all scheduler tasks; instead, allow the relatively few tasks that need it to 
obtain the context via GNUNET_SCHEDULER_get_task_context()

Modified: gnunet/doc/testbed_test.c
===================================================================
--- gnunet/doc/testbed_test.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/doc/testbed_test.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -37,7 +37,7 @@
  * Cleans up.
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   shutdown_tid = NULL;
   if (NULL != dht_op)

Modified: gnunet/src/Makefile.am
===================================================================
--- gnunet/src/Makefile.am      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/Makefile.am      2016-04-09 23:14:03 UTC (rev 37005)
@@ -13,14 +13,9 @@
 if HAVE_EXPERIMENTAL
  EXP_DIR = \
   dv \
-  multicast \
-  psycutil \
-  psycstore \
-  psyc \
   rps \
-  social \
   $(CONSENSUS) \
-  $(SECRETSHARING) 
+  $(SECRETSHARING)
 endif
 
 if HAVE_REST
@@ -105,6 +100,11 @@
   exit \
   pt \
   integration-tests \
+  multicast \
+  psycutil \
+  psycstore \
+  psyc \
+  social \
   $(EXP_DIR) \
   $(PROVIDER_DIR)
 

Modified: gnunet/src/arm/arm_api.c
===================================================================
--- gnunet/src/arm/arm_api.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/arm/arm_api.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -205,10 +205,9 @@
  * Task scheduled to try to re-connect to arm.
  *
  * @param cls the 'struct GNUNET_ARM_Handle'
- * @param tc task context
  */
 static void
-reconnect_arm_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_arm_task (void *cls)
 {
   struct GNUNET_ARM_Handle *h = cls;
 
@@ -711,10 +710,9 @@
  * Message timed out. Remove it from the queue.
  *
  * @param cls the message (struct ARMControlMessage *)
- * @param tc task context
  */
 static void
-control_message_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+control_message_timeout (void *cls)
 {
   struct ARMControlMessage *cm = cls;
   struct GNUNET_ARM_Message *arm_msg;

Modified: gnunet/src/arm/arm_monitor_api.c
===================================================================
--- gnunet/src/arm/arm_monitor_api.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/arm/arm_monitor_api.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -85,25 +85,29 @@
   struct GNUNET_SCHEDULER_Task * init_timeout_task_id;
 };
 
+
 static void
-monitor_notify_handler (void *cls, const struct GNUNET_MessageHeader *msg);
+monitor_notify_handler (void *cls,
+                        const struct GNUNET_MessageHeader *msg);
 
+
 static int
 reconnect_arm_monitor (struct GNUNET_ARM_MonitorHandle *h);
 
+
 /**
  * Task scheduled to try to re-connect to arm.
  *
  * @param cls the 'struct GNUNET_ARM_MonitorHandle'
- * @param tc task context
  */
 static void
-reconnect_arm_monitor_task (void *cls, const struct 
GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_arm_monitor_task (void *cls)
 {
   struct GNUNET_ARM_MonitorHandle *h = cls;
 
   h->reconnect_task = NULL;
-  LOG (GNUNET_ERROR_TYPE_DEBUG, "Connecting to ARM service for monitoring 
after delay\n");
+  LOG (GNUNET_ERROR_TYPE_DEBUG,
+       "Connecting to ARM service for monitoring after delay\n");
   reconnect_arm_monitor (h);
 }
 
@@ -147,15 +151,14 @@
  * Init message timed out. Disconnect and try again.
  *
  * @param cls arm monitor handle
- * @param tc task context
  */
 static void
-init_timeout_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+init_timeout_task (void *cls)
 {
   struct GNUNET_ARM_MonitorHandle *h = cls;
+
   LOG (GNUNET_ERROR_TYPE_DEBUG,
        "Init message timed out\n");
-
   h->init_timeout_task_id = NULL;
   reconnect_arm_monitor_later (h);
 }

Modified: gnunet/src/arm/gnunet-arm.c
===================================================================
--- gnunet/src/arm/gnunet-arm.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/arm/gnunet-arm.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -179,10 +179,9 @@
  * jobs that we've been asked to do in order.
  *
  * @param cls closure, unused
- * @param tc context, unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != h)
   {
@@ -269,10 +268,9 @@
  * Main task that runs our various operations in order.
  *
  * @param cls closure
- * @param tc scheudler context
  */
 static void
-action_loop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+action_loop (void *cls);
 
 
 /**
@@ -539,11 +537,13 @@
  * do, in order.
  *
  * @param cls closure, unused
- * @param tc context, unused
  */
 static void
-action_loop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+action_loop (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Running requested actions\n");

Modified: gnunet/src/arm/gnunet-service-arm.c
===================================================================
--- gnunet/src/arm/gnunet-service-arm.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/arm/gnunet-service-arm.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -630,16 +630,17 @@
  * create the service in order to relay the incoming connection to it
  *
  * @param cls callback data, `struct ServiceListeningInfo` describing a listen 
socket
- * @param tc context
  */
 static void
-accept_connection (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+accept_connection (void *cls)
 {
   struct ServiceListeningInfo *sli = cls;
   struct ServiceList *sl = sli->sl;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   sli->accept_task = NULL;
   GNUNET_assert (GNUNET_NO == in_shutdown);
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
   start_process (sl, NULL, 0);
@@ -845,11 +846,9 @@
  * Start a shutdown sequence.
  *
  * @param cls closure (refers to service)
- * @param tc task context
  */
 static void
-trigger_shutdown (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+trigger_shutdown (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Triggering shutdown\n");
@@ -1060,11 +1059,9 @@
  * Task run for shutdown.
  *
  * @param cls closure, NULL if we need to self-restart
- * @param tc context
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct ServiceList *pos;
   struct ServiceList *nxt;
@@ -1129,17 +1126,18 @@
  * Task run whenever it is time to restart a child that died.
  *
  * @param cls closure, always NULL
- * @param tc context
  */
 static void
-delayed_restart_task (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+delayed_restart_task (void *cls)
+
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   struct ServiceList *sl;
   struct GNUNET_TIME_Relative lowestRestartDelay;
   struct ServiceListeningInfo *sli;
 
   child_restart_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_assert (GNUNET_NO == in_shutdown);
@@ -1204,12 +1202,11 @@
  * process died).
  *
  * @param cls closure, NULL if we need to self-restart
- * @param tc context
  */
 static void
-maint_child_death (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc)
+maint_child_death (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   struct ServiceList *pos;
   struct ServiceList *next;
   struct ServiceListeningInfo *sli;
@@ -1223,6 +1220,7 @@
 
   pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ);
   child_death_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 == (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY))
   {
     /* shutdown scheduled us, ignore! */

Modified: gnunet/src/arm/test_arm_api.c
===================================================================
--- gnunet/src/arm/test_arm_api.c       2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/arm/test_arm_api.c       2016-04-09 23:14:03 UTC (rev 37005)
@@ -122,7 +122,7 @@
 
 
 static void
-trigger_disconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+trigger_disconnect (void *cls)
 {
   GNUNET_ARM_disconnect_and_free ((struct GNUNET_ARM_Handle *) cls);
 }

Modified: gnunet/src/arm/test_exponential_backoff.c
===================================================================
--- gnunet/src/arm/test_exponential_backoff.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/arm/test_exponential_backoff.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -141,11 +141,9 @@
  * Shutting down took too long, cancel receive and return error.
  *
  * @param cls closure
- * @param tc context information (why was this task triggered now)
  */
 static void
-service_shutdown_cancel (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+service_shutdown_cancel (void *cls)
 {
   struct ShutdownContext *shutdown_ctx = cls;
 
@@ -227,7 +225,7 @@
 
 
 static void
-kill_task (void *cbData, const struct GNUNET_SCHEDULER_TaskContext *tc);
+kill_task (void *cbData);
 
 
 static void
@@ -246,7 +244,7 @@
 
 
 static void
-kill_task (void *cbData, const struct GNUNET_SCHEDULER_TaskContext *tc)
+kill_task (void *cbData)
 {
   static struct GNUNET_CLIENT_Connection *doNothingConnection = NULL;
 
@@ -284,7 +282,7 @@
 
 
 static void
-trigger_disconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+trigger_disconnect (void *cls)
 {
   GNUNET_ARM_disconnect_and_free (arm);
   GNUNET_ARM_monitor_disconnect_and_free (mon);

Modified: gnunet/src/arm/test_gnunet_service_arm.c
===================================================================
--- gnunet/src/arm/test_gnunet_service_arm.c    2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/arm/test_gnunet_service_arm.c    2016-04-09 23:14:03 UTC (rev 
37005)
@@ -49,8 +49,7 @@
 
 
 static void
-trigger_disconnect (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+trigger_disconnect (void *cls)
 {
   GNUNET_ARM_disconnect_and_free (arm);
   arm = NULL;

Modified: gnunet/src/ats/ats_api_connectivity.c
===================================================================
--- gnunet/src/ats/ats_api_connectivity.c       2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/ats/ats_api_connectivity.c       2016-04-09 23:14:03 UTC (rev 
37005)
@@ -106,11 +106,9 @@
  * Re-establish the connection to the ATS service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-reconnect_task (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_task (void *cls)
 {
   struct GNUNET_ATS_ConnectivityHandle *ch = cls;
 

Modified: gnunet/src/ats/ats_api_performance.c
===================================================================
--- gnunet/src/ats/ats_api_performance.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/ats/ats_api_performance.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -261,11 +261,9 @@
  * Re-establish the connection to the ATS service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-reconnect_task (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_task (void *cls)
 {
   struct GNUNET_ATS_PerformanceHandle *ph = cls;
 

Modified: gnunet/src/ats/ats_api_scanner.c
===================================================================
--- gnunet/src/ats/ats_api_scanner.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/ats/ats_api_scanner.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -297,11 +297,9 @@
  * Periodically get list of network addresses from our interfaces.
  *
  * @param cls closure
- * @param tc Task context
  */
 static void
-get_addresses (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+get_addresses (void *cls)
 {
   struct GNUNET_ATS_InterfaceScanner *is = cls;
 

Modified: gnunet/src/ats/ats_api_scheduling.c
===================================================================
--- gnunet/src/ats/ats_api_scheduling.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/ats/ats_api_scheduling.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -166,11 +166,9 @@
  * Re-establish the connection to the ATS service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-reconnect_task (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_task (void *cls)
 {
   struct GNUNET_ATS_SchedulingHandle *sh = cls;
 

Modified: gnunet/src/ats/gnunet-ats-solver-eval.c
===================================================================
--- gnunet/src/ats/gnunet-ats-solver-eval.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/ats/gnunet-ats-solver-eval.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -216,7 +216,7 @@
 
 
 static void
-logging_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+logging_task (void *cls)
 {
   struct LoggingHandle *l = cls;
 
@@ -590,7 +590,7 @@
 
 
 static void
-set_prop_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+set_prop_task (void *cls)
 {
   struct PropertyGenerator *pg = cls;
   struct TestPeer *p;
@@ -858,9 +858,9 @@
   return pref_value;
 }
 
+
 static void
-set_feedback_task (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+set_feedback_task (void *cls)
 {
   struct PreferenceGenerator *pg = cls;
   struct TestPeer *p;
@@ -934,8 +934,7 @@
 
 
 static void
-set_pref_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+set_pref_task (void *cls)
 {
   struct PreferenceGenerator *pg = cls;
   struct TestPeer *p;
@@ -2124,10 +2123,12 @@
   return e_counter;
 }
 
+
 static void
-timeout_experiment (void *cls, const struct GNUNET_SCHEDULER_TaskContext* tc)
+timeout_experiment (void *cls)
 {
   struct Experiment *e = cls;
+
   e->experiment_timeout_task = NULL;
   fprintf (stderr, "Experiment timeout!\n");
 
@@ -2487,10 +2488,12 @@
   }
 }
 
+
 static void
-timeout_episode (void *cls, const struct GNUNET_SCHEDULER_TaskContext* tc)
+timeout_episode (void *cls)
 {
   struct Experiment *e = cls;
+
   e->episode_timeout_task = NULL;
   if (NULL != e->ep_done_cb)
     e->ep_done_cb (e->cur);

Modified: gnunet/src/ats/gnunet-service-ats.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/ats/gnunet-service-ats.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -124,11 +124,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-cleanup_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "ATS shutdown initiated\n");

Modified: gnunet/src/ats/gnunet-service-ats_preferences.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_preferences.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/ats/gnunet-service-ats_preferences.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -388,11 +388,9 @@
  * Reduce absolute preferences since they got old.
  *
  * @param cls unused
- * @param tc context
  */
 static void
-preference_aging (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+preference_aging (void *cls)
 {
   struct AgeContext ac;
 

Modified: gnunet/src/ats/plugin_ats_ril.c
===================================================================
--- gnunet/src/ats/plugin_ats_ril.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/ats/plugin_ats_ril.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -1513,10 +1513,9 @@
  * no further step is scheduled.
  *
  * @param cls the solver handle
- * @param tc the task context for the scheduler
  */
 static void
-ril_step_scheduler_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+ril_step_scheduler_task (void *cls)
 {
   struct GAS_RIL_Handle *solver = cls;
 

Modified: gnunet/src/ats/test_ats_lib.c
===================================================================
--- gnunet/src/ats/test_ats_lib.c       2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/ats/test_ats_lib.c       2016-04-09 23:14:03 UTC (rev 37005)
@@ -279,11 +279,9 @@
  * Task run to terminate the testcase.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-end (void *cls,
-     const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   if (0 != ret)
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -335,11 +333,9 @@
  * Main interpreter loop. Runs the steps of the test.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-interpreter (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc);
+interpreter (void *cls);
 
 
 /**
@@ -591,11 +587,9 @@
  * Main interpreter loop. Runs the steps of the test.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-interpreter (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+interpreter (void *cls)
 
 {
   struct Command *cmd;

Modified: gnunet/src/ats-tests/ats-testing-experiment.c
===================================================================
--- gnunet/src/ats-tests/ats-testing-experiment.c       2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/ats-tests/ats-testing-experiment.c       2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -415,8 +415,9 @@
   return e_counter;
 }
 
+
 static void
-timeout_experiment (void *cls, const struct GNUNET_SCHEDULER_TaskContext* tc)
+timeout_experiment (void *cls)
 {
   struct Experiment *e = cls;
   e->experiment_timeout_task = NULL;
@@ -432,6 +433,7 @@
       GNUNET_SYSERR);
 }
 
+
 static void
 enforce_start_send (struct GNUNET_ATS_TEST_Operation *op)
 {
@@ -573,10 +575,12 @@
   }
 }
 
+
 static void
-timeout_episode (void *cls, const struct GNUNET_SCHEDULER_TaskContext* tc)
+timeout_episode (void *cls)
 {
   struct Experiment *e = cls;
+
   e->episode_timeout_task = NULL;
   if (NULL != e->ep_done_cb)
     e->ep_done_cb (e->cur);
@@ -741,4 +745,3 @@
 }
 
 /* end of file ats-testing-experiment.c*/
-

Modified: gnunet/src/ats-tests/ats-testing-log.c
===================================================================
--- gnunet/src/ats-tests/ats-testing-log.c      2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/ats-tests/ats-testing-log.c      2016-04-09 23:14:03 UTC (rev 
37005)
@@ -799,21 +799,24 @@
   }
 }
 
+
 static void
-collect_log_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+collect_log_task (void *cls)
 {
   struct LoggingHandle *l = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   l->log_task = NULL;
-
   GNUNET_ATS_TEST_logging_now (l);
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (tc->reason == GNUNET_SCHEDULER_REASON_SHUTDOWN)
     return;
-
   l->log_task = GNUNET_SCHEDULER_add_delayed (l->frequency,
-      &collect_log_task, l);
+                                              &collect_log_task,
+                                              l);
 }
 
+
 /**
  * Stop logging
  *
@@ -905,4 +908,3 @@
   return l;
 }
 /* end of file ats-testing-log.c */
-

Modified: gnunet/src/ats-tests/ats-testing-preferences.c
===================================================================
--- gnunet/src/ats-tests/ats-testing-preferences.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/ats-tests/ats-testing-preferences.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -91,8 +91,7 @@
 
 
 static void
-set_pref_task (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+set_pref_task (void *cls)
 {
   struct BenchmarkPartner *p = cls;
   double pref_value;

Modified: gnunet/src/ats-tests/ats-testing-traffic.c
===================================================================
--- gnunet/src/ats-tests/ats-testing-traffic.c  2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/ats-tests/ats-testing-traffic.c  2016-04-09 23:14:03 UTC (rev 
37005)
@@ -166,8 +166,7 @@
 
 
 static void
-comm_schedule_send (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+comm_schedule_send (void *cls)
 {
   struct BenchmarkPartner *p = cls;
 
@@ -431,4 +430,3 @@
 }
 
 /* end of file ats-testing-traffic.c */
-

Modified: gnunet/src/ats-tests/ats-testing.c
===================================================================
--- gnunet/src/ats-tests/ats-testing.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/ats-tests/ats-testing.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -52,14 +52,14 @@
 
 struct GNUNET_ATS_TEST_Topology *top;
 
+
 /**
  * Shutdown nicely
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   int c_m;
   int c_s;
@@ -437,7 +437,7 @@
 }
 
 static void
-do_connect_peers (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_connect_peers (void *cls)
 {
   int c_m;
   int c_s;
@@ -506,7 +506,7 @@
 }
 
 static void
-do_comm_connect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_comm_connect (void *cls)
 {
   int c_s;
   int c_m;
@@ -649,7 +649,7 @@
 
 
 static void
-do_connect_ats (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_connect_ats (void *cls)
 {
   int c_m;
   int c_s;

Modified: gnunet/src/ats-tests/gnunet-solver-eval.c
===================================================================
--- gnunet/src/ats-tests/gnunet-solver-eval.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/ats-tests/gnunet-solver-eval.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -418,8 +418,9 @@
   return e_counter;
 }
 
+
 static void
-timeout_experiment (void *cls, const struct GNUNET_SCHEDULER_TaskContext* tc)
+timeout_experiment (void *cls)
 {
   struct Experiment *e = cls;
   e->experiment_timeout_task = NULL;
@@ -435,6 +436,7 @@
       GNUNET_SYSERR);
 }
 
+
 static void
 enforce_start_send (struct GNUNET_ATS_TEST_Operation *op)
 {
@@ -584,8 +586,9 @@
   }
 }
 
+
 static void
-timeout_episode (void *cls, const struct GNUNET_SCHEDULER_TaskContext* tc)
+timeout_episode (void *cls)
 {
   struct Experiment *e = cls;
   e->episode_timeout_task = NULL;
@@ -931,4 +934,3 @@
   return 0;
 }
 /* end of file ats-testing-experiment.c*/
-

Modified: gnunet/src/ats-tests/perf_ats.c
===================================================================
--- gnunet/src/ats-tests/perf_ats.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/ats-tests/perf_ats.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -185,10 +185,9 @@
  * Shutdown nicely
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
 
   if (GNUNET_YES == logging)
@@ -223,8 +222,9 @@
       &print_progress, NULL );
 }
 
+
 static void
-ats_pref_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+ats_pref_task (void *cls)
 {
   struct BenchmarkPeer *me = cls;
 

Modified: gnunet/src/ats-tests/perf_ats_logging.c
===================================================================
--- gnunet/src/ats-tests/perf_ats_logging.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/ats-tests/perf_ats_logging.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -637,17 +637,19 @@
 }
 
 static void
-collect_log_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+collect_log_task (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   log_task = NULL;
 
   collect_log_now();
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (tc->reason == GNUNET_SCHEDULER_REASON_SHUTDOWN)
     return;
 
   log_task = GNUNET_SCHEDULER_add_delayed (frequency,
-      &collect_log_task, NULL);
+                                           &collect_log_task, NULL);
 }
 
 
@@ -655,7 +657,6 @@
 perf_logging_stop ()
 {
   int c_m;
-  struct GNUNET_SCHEDULER_TaskContext tc;
   struct PeerLoggingTimestep *cur;
 
   if (GNUNET_YES!= running)
@@ -664,8 +665,7 @@
   if (NULL != log_task)
     GNUNET_SCHEDULER_cancel (log_task);
   log_task = NULL;
-  tc.reason = GNUNET_SCHEDULER_REASON_SHUTDOWN;
-  collect_log_task (NULL, &tc);
+  collect_log_task (NULL);
 
   GNUNET_log(GNUNET_ERROR_TYPE_INFO,
       _("Stop logging\n"));
@@ -685,6 +685,7 @@
   GNUNET_free (lp);
 }
 
+
 void
 perf_logging_start (struct GNUNET_TIME_Relative log_frequency,
     char * testname, struct BenchmarkPeer *masters, int num_masters)
@@ -710,4 +711,3 @@
   running = GNUNET_YES;
 }
 /* end of file perf_ats_logging.c */
-

Modified: gnunet/src/ats-tool/gnunet-ats.c
===================================================================
--- gnunet/src/ats-tool/gnunet-ats.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/ats-tool/gnunet-ats.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -265,11 +265,9 @@
  * Task run on shutdown.
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-end (void *cls,
-     const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   struct PendingResolutions * pr;
   struct PendingResolutions * next;

Modified: gnunet/src/cadet/cadet_api.c
===================================================================
--- gnunet/src/cadet/cadet_api.c        2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/cadet/cadet_api.c        2016-04-09 23:14:03 UTC (rev 37005)
@@ -513,10 +513,9 @@
  * Notify client that the transmission has timed out
  *
  * @param cls closure
- * @param tc task context
  */
 static void
-timeout_transmission (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_transmission (void *cls)
 {
   struct GNUNET_CADET_TransmitHandle *th = cls;
   struct GNUNET_CADET_Handle *cadet = th->channel->cadet;
@@ -594,12 +593,12 @@
 
 /**
  * Reconnect callback: tries to reconnect again after a failer previous
- * reconnecttion
+ * reconnection.
+ *
  * @param cls closure (cadet handle)
- * @param tc task context
  */
 static void
-reconnect_cbk (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+reconnect_cbk (void *cls);
 
 
 /**
@@ -696,15 +695,17 @@
 /**
  * Reconnect callback: tries to reconnect again after a failer previous
  * reconnecttion
+ *
  * @param cls closure (cadet handle)
- * @param tc task context
  */
 static void
-reconnect_cbk (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_cbk (void *cls)
 {
   struct GNUNET_CADET_Handle *h = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   h->reconnect_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   do_reconnect (h);
@@ -2171,4 +2172,3 @@
                                       NULL); /* no handler cls */
   return mq;
 }
-

Modified: gnunet/src/cadet/cadet_path.c
===================================================================
--- gnunet/src/cadet/cadet_path.c       2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/cadet/cadet_path.c       2016-04-09 23:14:03 UTC (rev 37005)
@@ -39,18 +39,19 @@
  * Removes the path from the peer (except for direct paths).
  *
  * @param cls Closure (path to destroy).
- * @param tc Task context.
  */
 static void
-path_destroy_delayed (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+path_destroy_delayed (void *cls)
 {
   struct CadetPeerPath *path = cls;
   struct CadetPeer *peer;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   LOG (GNUNET_ERROR_TYPE_INFO, "Destroy delayed %p (%u)\n", path, 
path->length);
   path->path_delete = NULL;
 
   /* During shutdown, the peers peermap might not exist anymore. */
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) == 0)
   {
     if (2 >= path->length)

Modified: gnunet/src/cadet/gnunet-cadet-profiler.c
===================================================================
--- gnunet/src/cadet/gnunet-cadet-profiler.c    2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/cadet/gnunet-cadet-profiler.c    2016-04-09 23:14:03 UTC (rev 
37005)
@@ -249,10 +249,9 @@
  * on callback funtion ch.
  *
  * @param cls Closure (unsued).
- * @param tc Task Context.
  */
 static void
-start_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+start_test (void *cls);
 
 
 /**
@@ -314,10 +313,9 @@
  * Shut down peergroup, clean up.
  *
  * @param cls Closure (unused).
- * @param tc Task Context.
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Ending test.\n");
   shutdown_handle = NULL;
@@ -328,10 +326,9 @@
  * Disconnect from cadet services af all peers, call shutdown.
  *
  * @param cls Closure (unused).
- * @param tc Task Context.
  */
 static void
-disconnect_cadet_peers (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+disconnect_cadet_peers (void *cls)
 {
   long line = (long) cls;
   unsigned int i;
@@ -443,11 +440,13 @@
  * Task check that keepalives were sent and received.
  *
  * @param cls Closure (NULL).
- * @param tc Task Context.
  */
 static void
-collect_stats (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+collect_stats (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
     return;
 
@@ -462,11 +461,13 @@
  * @brief Finish profiler normally. Signal finish and start collecting stats.
  *
  * @param cls Closure (unused).
- * @param tc Task context.
  */
 static void
-finish_profiler (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+finish_profiler (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
     return;
 
@@ -542,11 +543,13 @@
  * @brief Move to next round.
  *
  * @param cls Closure (round #).
- * @param tc Task context.
  */
 static void
-next_rnd (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+next_rnd (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
     return;
 
@@ -608,15 +611,15 @@
  * @brief Send a ping to destination
  *
  * @param cls Closure (peer).
- * @param tc Task context.
  */
 static void
-ping (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+ping (void *cls)
 {
-  struct CadetPeer *peer = (struct CadetPeer *) cls;
+  struct CadetPeer *peer = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   peer->ping_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason)
       || GNUNET_YES == test_finished)
     return;
@@ -865,15 +868,16 @@
  * on callback funtion ch.
  *
  * @param cls Closure (unsued).
- * @param tc Task Context.
  */
 static void
-start_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+start_test (void *cls)
 {
   enum GNUNET_CADET_ChannelOption flags;
   unsigned long i;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   test_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
     return;
 
@@ -1089,4 +1093,3 @@
 }
 
 /* end of gnunet-cadet-profiler.c */
-

Modified: gnunet/src/cadet/gnunet-cadet.c
===================================================================
--- gnunet/src/cadet/gnunet-cadet.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/cadet/gnunet-cadet.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -191,11 +191,9 @@
  * Stops monitoring activity.
  *
  * @param cls Closure (unused).
- * @param tc scheduler context
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutdown\n");
   if (NULL != th)
@@ -268,14 +266,14 @@
  * Task run in stdio mode, after some data is available at stdin.
  *
  * @param cls Closure (unused).
- * @param tc scheduler context
  */
 static void
-read_stdio (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+read_stdio (void *cls)
 {
   static char buf[60000];
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     return;
@@ -406,11 +404,13 @@
  * @brief Send an echo request to the remote peer.
  *
  * @param cls Closure (NULL).
- * @param tc Task context.
  */
 static void
-send_echo (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+send_echo (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) || NULL == ch)
     return;
 
@@ -426,10 +426,9 @@
  * Call CADET's monitor API, request debug dump on the service.
  *
  * @param cls Closure (unused).
- * @param tc TaskContext
  */
 static void
-request_dump (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+request_dump (void *cls)
 {
   GNUNET_CADET_request_dump (mh);
   GNUNET_SCHEDULER_cancel (sd);
@@ -441,10 +440,9 @@
  * Call CADET's monitor API, get info of one connection.
  *
  * @param cls Closure (unused).
- * @param tc TaskContext
  */
 static void
-create_channel (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+create_channel (void *cls)
 {
   struct GNUNET_PeerIdentity pid;
   enum GNUNET_CADET_ChannelOption opt;
@@ -703,11 +701,13 @@
  * Call CADET's meta API, get all peers known to a peer.
  *
  * @param cls Closure (unused).
- * @param tc TaskContext
  */
 static void
-get_peers (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+get_peers (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutdown\n");
@@ -721,18 +721,17 @@
  * Call CADET's monitor API, get info of one peer.
  *
  * @param cls Closure (unused).
- * @param tc TaskContext
  */
 static void
-show_peer (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+show_peer (void *cls)
 {
   struct GNUNET_PeerIdentity pid;
 
   if (GNUNET_OK !=
-    GNUNET_CRYPTO_eddsa_public_key_from_string (peer_id,
-                                                strlen (peer_id),
-                                                &pid.public_key))
-  {
+      GNUNET_CRYPTO_eddsa_public_key_from_string (peer_id,
+                                                  strlen (peer_id),
+                                                  &pid.public_key))
+    {
     fprintf (stderr,
              _("Invalid peer ID `%s'\n"),
              peer_id);
@@ -746,11 +745,13 @@
  * Call CADET's meta API, get all tunnels known to a peer.
  *
  * @param cls Closure (unused).
- * @param tc TaskContext
  */
 static void
-get_tunnels (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+get_tunnels (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutdown\n");
@@ -764,10 +765,9 @@
  * Call CADET's monitor API, get info of one tunnel.
  *
  * @param cls Closure (unused).
- * @param tc TaskContext
  */
 static void
-show_tunnel (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+show_tunnel (void *cls)
 {
   struct GNUNET_PeerIdentity pid;
 
@@ -790,10 +790,9 @@
  * Call CADET's monitor API, get info of one channel.
  *
  * @param cls Closure (unused).
- * @param tc TaskContext
  */
 static void
-show_channel (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+show_channel (void *cls)
 {
 
 }
@@ -803,10 +802,9 @@
  * Call CADET's monitor API, get info of one connection.
  *
  * @param cls Closure (unused).
- * @param tc TaskContext
  */
 static void
-show_connection (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+show_connection (void *cls)
 {
 
 }

Modified: gnunet/src/cadet/gnunet-service-cadet.c
===================================================================
--- gnunet/src/cadet/gnunet-service-cadet.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/cadet/gnunet-service-cadet.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -98,10 +98,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "shutting down\n");
 

Modified: gnunet/src/cadet/gnunet-service-cadet_channel.c
===================================================================
--- gnunet/src/cadet/gnunet-service-cadet_channel.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/cadet/gnunet-service-cadet_channel.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -721,11 +721,9 @@
  * We haven't received an ACK after a certain time: restransmit the message.
  *
  * @param cls Closure (CadetChannelReliability with the message to restransmit)
- * @param tc TaskContext.
  */
 static void
-channel_retransmit_message (void *cls,
-                            const struct GNUNET_SCHEDULER_TaskContext *tc)
+channel_retransmit_message (void *cls)
 {
   struct CadetChannelReliability *rel = cls;
   struct CadetReliableMessage *copy;
@@ -732,8 +730,10 @@
   struct CadetChannel *ch;
   struct GNUNET_CADET_Data *payload;
   int fwd;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   rel->retry_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
 
@@ -760,14 +760,15 @@
  * We haven't received an Channel ACK after a certain time: resend the CREATE.
  *
  * @param cls Closure (CadetChannelReliability of the channel to recreate)
- * @param tc TaskContext.
  */
 static void
-channel_recreate (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+channel_recreate (void *cls)
 {
   struct CadetChannelReliability *rel = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   rel->retry_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
 

Modified: gnunet/src/cadet/gnunet-service-cadet_connection.c
===================================================================
--- gnunet/src/cadet/gnunet-service-cadet_connection.c  2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/cadet/gnunet-service-cadet_connection.c  2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -1221,13 +1221,14 @@
  * Keep the connection alive in the FWD direction.
  *
  * @param cls Closure (connection to keepalive).
- * @param tc TaskContext.
  */
 static void
-connection_fwd_keepalive (void *cls,
-                          const struct GNUNET_SCHEDULER_TaskContext *tc)
+connection_fwd_keepalive (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   GCC_check_connections ();
+  tc = GNUNET_SCHEDULER_get_task_context ();
   connection_keepalive ((struct CadetConnection *) cls,
                         GNUNET_YES,
                         tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN);
@@ -1239,13 +1240,14 @@
  * Keep the connection alive in the BCK direction.
  *
  * @param cls Closure (connection to keepalive).
- * @param tc TaskContext.
  */
 static void
-connection_bck_keepalive (void *cls,
-                          const struct GNUNET_SCHEDULER_TaskContext *tc)
+connection_bck_keepalive (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   GCC_check_connections ();
+  tc = GNUNET_SCHEDULER_get_task_context ();
   connection_keepalive ((struct CadetConnection *) cls,
                         GNUNET_NO,
                         tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN);
@@ -1400,11 +1402,9 @@
  * possibly due to a missed ACK. Poll the neighbor about its ACK status.
  *
  * @param cls Closure (poll ctx).
- * @param tc TaskContext.
  */
 static void
-connection_poll (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc);
+connection_poll (void *cls);
 
 
 /**
@@ -1453,18 +1453,19 @@
  * possibly due to a missed ACK. Poll the neighbor about its ACK status.
  *
  * @param cls Closure (poll ctx).
- * @param tc TaskContext.
  */
 static void
-connection_poll (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+connection_poll (void *cls)
 {
   struct CadetFlowControl *fc = cls;
   struct GNUNET_CADET_Poll msg;
   struct CadetConnection *c;
   int fwd;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   fc->poll_task = NULL;
   GCC_check_connections ();
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     return;
@@ -1586,15 +1587,15 @@
  * Destroys connection if called.
  *
  * @param cls Closure (connection to destroy).
- * @param tc TaskContext.
  */
 static void
-connection_fwd_timeout (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+connection_fwd_timeout (void *cls)
 {
   struct CadetConnection *c = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   c->fwd_maintenance_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GCC_check_connections ();
@@ -1608,15 +1609,15 @@
  * Destroys connection if called.
  *
  * @param cls Closure (connection to destroy).
- * @param tc TaskContext
  */
 static void
-connection_bck_timeout (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+connection_bck_timeout (void *cls)
 {
   struct CadetConnection *c = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   c->bck_maintenance_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GCC_check_connections ();
@@ -1761,14 +1762,15 @@
  * connection with the same path, and destroy one if so.
  *
  * @param cls Closure (connection to check).
- * @param tc Task context.
  */
 static void
-check_duplicates (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+check_duplicates (void *cls)
 {
   struct CadetConnection *c = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   c->check_duplicates_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
 

Modified: gnunet/src/cadet/gnunet-service-cadet_dht.c
===================================================================
--- gnunet/src/cadet/gnunet-service-cadet_dht.c 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/cadet/gnunet-service-cadet_dht.c 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -206,10 +206,9 @@
  * Periodically announce self id in the DHT
  *
  * @param cls closure
- * @param tc task context
  */
 static void
-announce_id (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+announce_id (void *cls)
 {
   struct GNUNET_HashCode phash;
   const struct GNUNET_HELLO_Message *hello;
@@ -216,7 +215,9 @@
   size_t size;
   struct GNUNET_TIME_Absolute expiration;
   struct GNUNET_TIME_Relative retry_time;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     announce_id_task = NULL;

Modified: gnunet/src/cadet/gnunet-service-cadet_peer.c
===================================================================
--- gnunet/src/cadet/gnunet-service-cadet_peer.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/cadet/gnunet-service-cadet_peer.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -841,14 +841,15 @@
  * @brief Start a search for a peer.
  *
  * @param cls Closure (Peer to search for).
- * @param tc Task context.
  */
 static void
-delayed_search (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+delayed_search (void *cls)
 {
   struct CadetPeer *peer = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   peer->search_delayed = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
   GCC_check_connections ();
@@ -1955,11 +1956,9 @@
  * Marks the operation as finished.
  *
  * @param cls Closure (our `struct CadetPeer`).
- * @param tc TaskContext.
  */
 static void
-hello_offer_done (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+hello_offer_done (void *cls)
 {
   struct CadetPeer *peer = cls;
 

Modified: gnunet/src/cadet/gnunet-service-cadet_tunnel.c
===================================================================
--- gnunet/src/cadet/gnunet-service-cadet_tunnel.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/cadet/gnunet-service-cadet_tunnel.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -1730,15 +1730,15 @@
  * @brief Finish the Key eXchange and destroy the old keys.
  *
  * @param cls Closure (Tunnel for which to finish the KX).
- * @param tc Task context.
  */
 static void
-finish_kx (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+finish_kx (void *cls)
 {
   struct CadetTunnel *t = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   LOG (GNUNET_ERROR_TYPE_INFO, "finish KX for %s\n", GCT_2s (t));
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     LOG (GNUNET_ERROR_TYPE_INFO, "  shutdown\n");
@@ -2098,15 +2098,15 @@
  * @brief Resend the AX KX until we complete the handshake.
  *
  * @param cls Closure (tunnel).
- * @param tc Task context.
  */
 static void
-ax_kx_resend (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+ax_kx_resend (void *cls)
 {
   struct CadetTunnel *t = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   t->rekey_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
 
@@ -2328,16 +2328,16 @@
  * Initiate a rekey with the remote peer.
  *
  * @param cls Closure (tunnel).
- * @param tc TaskContext.
  */
 static void
-rekey_tunnel (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+rekey_tunnel (void *cls)
 {
   struct CadetTunnel *t = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   t->rekey_task = NULL;
-
   LOG (GNUNET_ERROR_TYPE_INFO, "Re-key Tunnel %s\n", GCT_2s (t));
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (NULL != tc && 0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
 
@@ -2447,16 +2447,16 @@
  * Create a new ephemeral key and key message, schedule next rekeying.
  *
  * @param cls Closure (unused).
- * @param tc TaskContext.
  */
 static void
-global_otr_rekey (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+global_otr_rekey (void *cls)
 {
   struct GNUNET_TIME_Absolute time;
   long n;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   rekey_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
 
@@ -2833,7 +2833,7 @@
       GNUNET_break (0);
       return;
     }
-    rekey_tunnel (t, NULL);
+    rekey_tunnel (t);
     GNUNET_STATISTICS_update (stats, "# otr-downgrades", -1, GNUNET_NO);
   }
 
@@ -2865,7 +2865,7 @@
     }
     if (NULL != t->rekey_task)
       GNUNET_SCHEDULER_cancel (t->rekey_task);
-    t->rekey_task = GNUNET_SCHEDULER_add_now (rekey_tunnel, t);
+    t->rekey_task = GNUNET_SCHEDULER_add_now (&rekey_tunnel, t);
   }
   if (CADET_TUNNEL_KEY_SENT == t->estate)
   {
@@ -3467,15 +3467,15 @@
  * of being created/processed.
  *
  * @param cls Closure (Tunnel to check).
- * @param tc Task context.
  */
 static void
-trim_connections (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+trim_connections (void *cls)
 {
   struct CadetTunnel *t = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   t->trim_connections_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
 
@@ -3695,15 +3695,16 @@
  * the tunnel. This way we avoid a new public key handshake.
  *
  * @param cls Closure (tunnel to destroy).
- * @param tc Task context.
  */
 static void
-delayed_destroy (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+delayed_destroy (void *cls)
 {
   struct CadetTunnel *t = cls;
   struct CadetTConnection *iter;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   LOG (GNUNET_ERROR_TYPE_DEBUG, "delayed destroying tunnel %p\n", t);
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
   {
     LOG (GNUNET_ERROR_TYPE_WARNING,

Modified: gnunet/src/cadet/test_cadet.c
===================================================================
--- gnunet/src/cadet/test_cadet.c       2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/cadet/test_cadet.c       2016-04-09 23:14:03 UTC (rev 37005)
@@ -262,7 +262,7 @@
  * @param tc Task Context.
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Ending test.\n");
   shutdown_handle = NULL;
@@ -276,12 +276,13 @@
  * @param tc Task Context.
  */
 static void
-disconnect_cadet_peers (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+disconnect_cadet_peers (void *cls)
 {
   long line = (long) cls;
   unsigned int i;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "disconnecting cadet peers due to SHUTDOWN! called from %ld\n",
@@ -387,16 +388,16 @@
  * Task to gather all statistics.
  *
  * @param cls Closure (NULL).
- * @param tc Task Context.
  */
 static void
-gather_stats_and_exit (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+gather_stats_and_exit (void *cls)
 {
-  disconnect_task = NULL;
   long l = (long) cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  disconnect_task = NULL;
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "gathering statistics from line %d\n", 
l);
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
   {
     disconnect_task = GNUNET_SCHEDULER_add_now (&disconnect_cadet_peers,
@@ -456,18 +457,17 @@
  * Task to request a new data transmission.
  *
  * @param cls Closure (peer #).
- * @param tc Task Context.
  */
 static void
-data_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+data_task (void *cls)
 {
   struct GNUNET_CADET_Channel *channel;
   static struct GNUNET_CADET_TransmitHandle **pth;
-
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   long src;
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Data task\n");
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
     return;
 
@@ -837,13 +837,14 @@
  * on callback function ch.
  *
  * @param cls Closure (unused).
- * @param tc Task Context.
  */
 static void
-do_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_test (void *cls)
 {
   enum GNUNET_CADET_ChannelOption flags;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
     return;
 
@@ -1084,4 +1085,3 @@
 }
 
 /* end of test_cadet.c */
-

Modified: gnunet/src/cadet/test_cadet_local.c
===================================================================
--- gnunet/src/cadet/test_cadet_local.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/cadet/test_cadet_local.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -53,10 +53,9 @@
  * Connect to other client and send data
  *
  * @param cls Closue (unused).
- * @param tc TaskContext.
  */
 static void
-do_connect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+do_connect (void *cls);
 
 
 /**
@@ -63,7 +62,7 @@
  * Shutdown nicely
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "shutdown\n");
   if (NULL != abort_task)
@@ -91,7 +90,7 @@
  * Something went wrong and timed out. Kill everything and set error flag
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "ABORT\n");
   result = GNUNET_SYSERR;
@@ -101,7 +100,7 @@
     GNUNET_SCHEDULER_cancel (shutdown_task);
     shutdown_task = NULL;
   }
-  do_shutdown (cls, tc);
+  do_shutdown (cls);
 }
 
 
@@ -126,7 +125,8 @@
   if (NULL != shutdown_task)
     GNUNET_SCHEDULER_cancel (shutdown_task);
   shutdown_task =
-    GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &do_shutdown,
+    GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+                                  &do_shutdown,
                                   NULL);
   GNUNET_CADET_receive_done (channel);
   return GNUNET_OK;
@@ -146,9 +146,11 @@
  *         (can be NULL -- that's not an error)
  */
 static void *
-inbound_channel (void *cls, struct GNUNET_CADET_Channel *channel,
-                const struct GNUNET_PeerIdentity *initiator,
-                uint32_t port, enum GNUNET_CADET_ChannelOption options)
+inbound_channel (void *cls,
+                 struct GNUNET_CADET_Channel *channel,
+                 const struct GNUNET_PeerIdentity *initiator,
+                 uint32_t port,
+                 enum GNUNET_CADET_ChannelOption options)
 {
   long id = (long) cls;
 
@@ -247,13 +249,14 @@
  * Connect to other client and send data
  *
  * @param cls Closue (unused).
- * @param tc TaskContext.
  */
 static void
-do_connect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_connect (void *cls)
 {
   struct GNUNET_PeerIdentity id;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (NULL != tc && 0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
 

Modified: gnunet/src/cadet/test_cadet_single.c
===================================================================
--- gnunet/src/cadet/test_cadet_single.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/cadet/test_cadet_single.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -59,7 +59,7 @@
  * Shutdown nicely
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "shutdown\n");
   if (NULL != abort_task)
@@ -88,7 +88,7 @@
  * Something went wrong and timed out. Kill everything and set error flag
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "ABORT\n");
   result = GNUNET_SYSERR;
@@ -98,7 +98,7 @@
     GNUNET_SCHEDULER_cancel (shutdown_task);
     shutdown_task = NULL;
   }
-  do_shutdown (cls, tc);
+  do_shutdown (cls);
 }
 
 
@@ -247,14 +247,15 @@
  * Connect to other client and send data
  *
  * @param cls Closue (unused).
- * @param tc TaskContext.
  */
 static void
-do_connect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_connect (void *cls)
 {
   struct GNUNET_PeerIdentity id;
   size_t size = sizeof (struct GNUNET_MessageHeader) + DATA_SIZE;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
     return;
 

Modified: gnunet/src/consensus/gnunet-consensus-profiler.c
===================================================================
--- gnunet/src/consensus/gnunet-consensus-profiler.c    2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/consensus/gnunet-consensus-profiler.c    2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -120,8 +120,8 @@
  * @param subsystem name of subsystem that created the statistic
  * @param name the name of the datum
  * @param value the current value
- * @param is_persistent GNUNET_YES if the value is persistent, GNUNET_NO if not
- * @return GNUNET_OK to continue, GNUNET_SYSERR to abort iteration
+ * @param is_persistent #GNUNET_YES if the value is persistent, #GNUNET_NO if 
not
+ * @return #GNUNET_OK to continue, #GNUNET_SYSERR to abort iteration
  */
 static int
 statistics_cb (void *cls,
@@ -140,7 +140,7 @@
 
 
 static void
-destroy (void *cls, const struct GNUNET_SCHEDULER_TaskContext *ctx)
+destroy (void *cls)
 {
   struct GNUNET_CONSENSUS_Handle *consensus = cls;
 
@@ -521,4 +521,3 @@
                      options, &run, NULL, GNUNET_YES);
   return 0;
 }
-

Modified: gnunet/src/consensus/gnunet-service-consensus.c
===================================================================
--- gnunet/src/consensus/gnunet-service-consensus.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/consensus/gnunet-service-consensus.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -3169,11 +3169,9 @@
  * Called to clean up, after a shutdown has been requested.
  *
  * @param cls closure
- * @param tc context information (why was this task triggered now)
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   while (NULL != sessions_head)
     destroy_session (sessions_head);

Modified: gnunet/src/consensus/test_consensus_api.c
===================================================================
--- gnunet/src/consensus/test_consensus_api.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/consensus/test_consensus_api.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -67,11 +67,9 @@
  * Signature of the main function of a task.
  *
  * @param cls closure
- * @param tc context information (why was this task triggered now)
  */
 static void
-on_shutdown (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+on_shutdown (void *cls)
 {
   if (NULL != consensus)
   {
@@ -121,4 +119,3 @@
                                  &run, NULL);
   return ret;
 }
-

Modified: gnunet/src/conversation/gnunet-conversation-test.c
===================================================================
--- gnunet/src/conversation/gnunet-conversation-test.c  2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/conversation/gnunet-conversation-test.c  2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -96,11 +96,9 @@
  * Terminate test.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-do_shutdown (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   struct Recording *rec;
 
@@ -126,11 +124,9 @@
  * Terminate recording process and switch to playback.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-switch_to_speaker (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+switch_to_speaker (void *cls)
 {
   struct Recording *rec;
 

Modified: gnunet/src/conversation/gnunet-conversation.c
===================================================================
--- gnunet/src/conversation/gnunet-conversation.c       2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/conversation/gnunet-conversation.c       2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -1020,11 +1020,9 @@
  * Task run during shutdown.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-do_stop_task (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_stop_task (void *cls)
 {
 #ifdef WINDOWS
   if (NULL != stdin_hlp)
@@ -1132,11 +1130,9 @@
  * Task to handle commands from the terminal.
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-handle_command (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+handle_command (void *cls)
 {
   char message[MAX_MESSAGE_LENGTH + 1];
 

Modified: gnunet/src/conversation/gnunet-service-conversation.c
===================================================================
--- gnunet/src/conversation/gnunet-service-conversation.c       2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/conversation/gnunet-service-conversation.c       2016-04-09 
23:14:03 UTC (rev 37005)
@@ -1463,11 +1463,9 @@
  * Shutdown nicely
  *
  * @param cls closure, NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   struct Line *line;
   struct Channel *ch;

Modified: gnunet/src/conversation/test_conversation_api.c
===================================================================
--- gnunet/src/conversation/test_conversation_api.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/conversation/test_conversation_api.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -73,8 +73,7 @@
 
 
 static void
-phone_send (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+phone_send (void *cls)
 {
   static unsigned int i;
   char buf[32];
@@ -88,8 +87,7 @@
 
 
 static void
-call_send (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+call_send (void *cls)
 {
   static unsigned int i;
   char buf[32];
@@ -272,10 +270,9 @@
  * Signature of the main function of a task.
  *
  * @param cls closure
- * @param tc context information (why was this task triggered now)
  */
 static void
-end_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_test (void *cls)
 {
   GNUNET_SCHEDULER_shutdown ();
   if (NULL != op)

Modified: gnunet/src/conversation/test_conversation_api_reject.c
===================================================================
--- gnunet/src/conversation/test_conversation_api_reject.c      2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/conversation/test_conversation_api_reject.c      2016-04-09 
23:14:03 UTC (rev 37005)
@@ -130,10 +130,9 @@
  * Signature of the main function of a task.
  *
  * @param cls closure
- * @param tc context information (why was this task triggered now)
  */
 static void
-end_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_test (void *cls)
 {
   GNUNET_SCHEDULER_shutdown ();
   if (NULL != op)

Modified: gnunet/src/conversation/test_conversation_api_twocalls.c
===================================================================
--- gnunet/src/conversation/test_conversation_api_twocalls.c    2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/conversation/test_conversation_api_twocalls.c    2016-04-09 
23:14:03 UTC (rev 37005)
@@ -124,8 +124,7 @@
 
 
 static void
-phone_send (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+phone_send (void *cls)
 {
   char buf[32];
 
@@ -138,8 +137,7 @@
 
 
 static void
-call_send (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+call_send (void *cls)
 {
   struct MicContext *mc = cls;
   char buf[32];
@@ -343,10 +341,9 @@
  * Signature of the main function of a task.
  *
  * @param cls closure
- * @param tc context information (why was this task triggered now)
  */
 static void
-end_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_test (void *cls)
 {
   GNUNET_SCHEDULER_shutdown ();
   if (NULL != op)

Modified: gnunet/src/core/core_api.c
===================================================================
--- gnunet/src/core/core_api.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/core/core_api.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -339,8 +339,7 @@
  * @param tc task context
  */
 static void
-reconnect_task (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_task (void *cls)
 {
   struct GNUNET_CORE_Handle *h = cls;
 
@@ -1214,11 +1213,9 @@
  * Task that calls #request_next_transmission().
  *
  * @param cls the `struct PeerRecord *`
- * @param tc scheduler context
  */
 static void
-run_request_next_transmission (void *cls,
-                               const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_request_next_transmission (void *cls)
 {
   struct PeerRecord *pr = cls;
 

Modified: gnunet/src/core/gnunet-core.c
===================================================================
--- gnunet/src/core/gnunet-core.c       2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/core/gnunet-core.c       2016-04-09 23:14:03 UTC (rev 37005)
@@ -44,11 +44,9 @@
  * Stops monitoring activity.
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != mh)
   {

Modified: gnunet/src/core/gnunet-service-core.c
===================================================================
--- gnunet/src/core/gnunet-service-core.c       2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/core/gnunet-service-core.c       2016-04-09 23:14:03 UTC (rev 
37005)
@@ -60,12 +60,12 @@
  * the transport.
  *
  * @param cls NULL, unused
- * @param tc scheduler context, unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Core service shutting down.\n");
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Core service shutting down.\n");
   GSC_CLIENTS_done ();
   GSC_NEIGHBOURS_done ();
   GSC_SESSIONS_done ();

Modified: gnunet/src/core/gnunet-service-core_kx.c
===================================================================
--- gnunet/src/core/gnunet-service-core_kx.c    2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/core/gnunet-service-core_kx.c    2016-04-09 23:14:03 UTC (rev 
37005)
@@ -659,11 +659,9 @@
  * Task that will retry #send_key() if our previous attempt failed.
  *
  * @param cls our `struct GSC_KeyExchangeInfo`
- * @param tc scheduler context
  */
 static void
-set_key_retry_task (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+set_key_retry_task (void *cls)
 {
   struct GSC_KeyExchangeInfo *kx = cls;
 
@@ -1104,11 +1102,9 @@
  * (and we should prevent this by sending a PING).
  *
  * @param cls the `struct GSC_KeyExchangeInfo`
- * @param tc scheduler context (not used)
  */
 static void
-send_keep_alive (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+send_keep_alive (void *cls)
 {
   struct GSC_KeyExchangeInfo *kx = cls;
   struct GNUNET_TIME_Relative retry;
@@ -1698,11 +1694,9 @@
  * Task run to trigger rekeying.
  *
  * @param cls closure, NULL
- * @param tc scheduler context
  */
 static void
-do_rekey (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_rekey (void *cls)
 {
   struct GSC_KeyExchangeInfo *pos;
 

Modified: gnunet/src/core/gnunet-service-core_sessions.c
===================================================================
--- gnunet/src/core/gnunet-service-core_sessions.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/core/gnunet-service-core_sessions.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -264,11 +264,9 @@
  * (Done periodically until the typemap is confirmed).
  *
  * @param cls the `struct Session *`
- * @param tc unused
  */
 static void
-transmit_typemap_task (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+transmit_typemap_task (void *cls)
 {
   struct Session *session = cls;
   struct GNUNET_MessageHeader *hdr;
@@ -589,11 +587,9 @@
  * Send them now.
  *
  * @param cls `struct Session` with the messages to transmit now
- * @param tc scheduler context (unused)
  */
 static void
-pop_cork_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+pop_cork_task (void *cls)
 {
   struct Session *session = cls;
 

Modified: gnunet/src/core/test_core_api.c
===================================================================
--- gnunet/src/core/test_core_api.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/core/test_core_api.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -99,8 +99,7 @@
 
 
 static void
-terminate_task (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+terminate_task (void *cls)
 {
   GNUNET_assert (ok == 6);
   terminate_peer (&p1);
@@ -110,8 +109,7 @@
 
 
 static void
-terminate_task_error (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc)
+terminate_task_error (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "ENDING ANGRILY %u\n",

Modified: gnunet/src/core/test_core_api_mq.c
===================================================================
--- gnunet/src/core/test_core_api_mq.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/core/test_core_api_mq.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -96,8 +96,7 @@
 
 
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutting down\n");
   GNUNET_MQ_destroy (mq);

Modified: gnunet/src/core/test_core_api_reliability.c
===================================================================
--- gnunet/src/core/test_core_api_reliability.c 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/core/test_core_api_reliability.c 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -128,8 +128,7 @@
 
 
 static void
-terminate_task (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+terminate_task (void *cls)
 {
   unsigned long long delta;
 
@@ -146,8 +145,7 @@
 
 
 static void
-terminate_task_error (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc)
+terminate_task_error (void *cls)
 {
   GNUNET_break (0);
   terminate_peer (&p1);

Modified: gnunet/src/core/test_core_api_send_to_self.c
===================================================================
--- gnunet/src/core/test_core_api_send_to_self.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/core/test_core_api_send_to_self.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -55,7 +55,7 @@
  * Function scheduled as very last function, cleans up after us
  */
 static void
-cleanup (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tskctx)
+cleanup (void *cls)
 {
   die_task = NULL;
 

Modified: gnunet/src/core/test_core_api_start_only.c
===================================================================
--- gnunet/src/core/test_core_api_start_only.c  2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/core/test_core_api_start_only.c  2016-04-09 23:14:03 UTC (rev 
37005)
@@ -92,7 +92,7 @@
 
 
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_CORE_disconnect (p1.ch);
   p1.ch = NULL;
@@ -144,7 +144,7 @@
 
 
 static void
-timeout_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_task (void *cls)
 {
   FPRINTF (stderr, "%s",  "Timeout.\n");
   if (p1.ch != NULL)

Modified: gnunet/src/core/test_core_quota_compliance.c
===================================================================
--- gnunet/src/core/test_core_quota_compliance.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/core/test_core_quota_compliance.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -152,8 +152,7 @@
 
 
 static void
-terminate_task (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+terminate_task (void *cls)
 {
   err_task = NULL;
   terminate_peer (&p1);
@@ -162,11 +161,12 @@
 
 
 static void
-terminate_task_error (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc)
+terminate_task_error (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   err_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Testcase failed!\n");
@@ -214,8 +214,7 @@
 
 
 static void
-measurement_stop (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+measurement_stop (void *cls)
 {
   unsigned long long delta;
   unsigned long long throughput_out;

Modified: gnunet/src/datastore/datastore_api.c
===================================================================
--- gnunet/src/datastore/datastore_api.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/datastore/datastore_api.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -278,11 +278,9 @@
  * Task used by 'transmit_drop' to disconnect the datastore.
  *
  * @param cls the datastore handle
- * @param tc scheduler context
  */
 static void
-disconnect_after_drop (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc)
+disconnect_after_drop (void *cls)
 {
   struct GNUNET_DATASTORE_Handle *h = cls;
 
@@ -383,10 +381,9 @@
  * A request has timed out (before being transmitted to the service).
  *
  * @param cls the `struct GNUNET_DATASTORE_QueueEntry`
- * @param tc scheduler context
  */
 static void
-timeout_queue_entry (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_queue_entry (void *cls)
 {
   struct GNUNET_DATASTORE_QueueEntry *qe = cls;
   struct GNUNET_DATASTORE_Handle *h = qe->h;
@@ -520,10 +517,9 @@
  * Try reconnecting to the datastore service.
  *
  * @param cls the `struct GNUNET_DATASTORE_Handle`
- * @param tc scheduler context
  */
 static void
-try_reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+try_reconnect (void *cls)
 {
   struct GNUNET_DATASTORE_Handle *h = cls;
 

Modified: gnunet/src/datastore/gnunet-datastore.c
===================================================================
--- gnunet/src/datastore/gnunet-datastore.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/datastore/gnunet-datastore.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -70,8 +70,7 @@
 
 
 static void
-do_shutdown (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != qe)
     GNUNET_DATASTORE_cancel (qe);

Modified: gnunet/src/datastore/gnunet-service-datastore.c
===================================================================
--- gnunet/src/datastore/gnunet-service-datastore.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/datastore/gnunet-service-datastore.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -303,11 +303,9 @@
  * content quickly.
  *
  * @param cls not used
- * @param tc task context
  */
 static void
-delete_expired (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc);
+delete_expired (void *cls);
 
 
 /**
@@ -388,10 +386,9 @@
  * content quickly.
  *
  * @param cls not used
- * @param tc task context
  */
 static void
-delete_expired (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+delete_expired (void *cls)
 {
   expired_kill_task = NULL;
   plugin->api->get_expiration (plugin->api->cls, &expired_processor, NULL);
@@ -1579,8 +1576,7 @@
  * Task run during shutdown.
  */
 static void
-cleaning_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleaning_task (void *cls)
 {
   struct TransmitCallbackContext *tcc;
 

Modified: gnunet/src/datastore/perf_datastore_api.c
===================================================================
--- gnunet/src/datastore/perf_datastore_api.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/datastore/perf_datastore_api.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -186,11 +186,9 @@
  * depending on the current state.
  *
  * @param cls the `struct CpsRunContext`
- * @param tc scheduler context (unused)
  */
 static void
-run_continuation (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc);
+run_continuation (void *cls);
 
 
 /**
@@ -344,11 +342,9 @@
  * depending on the current state.
  *
  * @param cls the `struct CpsRunContext`
- * @param tc scheduler context (unused)
  */
 static void
-run_continuation (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_continuation (void *cls)
 {
   struct CpsRunContext *crc = cls;
   size_t size;
@@ -355,7 +351,9 @@
   static struct GNUNET_HashCode key;
   static char data[65536];
   char gstr[128];
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     crc->phase = RP_ERROR;
   ok = (int) crc->phase;

Modified: gnunet/src/datastore/perf_plugin_datastore.c
===================================================================
--- gnunet/src/datastore/perf_plugin_datastore.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/datastore/perf_plugin_datastore.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -99,8 +99,7 @@
 
 
 static void
-test (void *cls, 
-      const struct GNUNET_SCHEDULER_TaskContext *tc);
+test (void *cls);
 
 
 /**
@@ -115,8 +114,8 @@
 static void
 put_continuation (void *cls,
                  const struct GNUNET_HashCode *key,
-                  uint32_t size, 
-                 int status, 
+                  uint32_t size,
+                 int status,
                  const char *msg)
 {
   struct CpsRunContext *crc = cls;
@@ -376,7 +375,7 @@
  * the transport and core.
  */
 static void
-cleaning_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleaning_task (void *cls)
 {
   struct CpsRunContext *crc = cls;
 
@@ -386,10 +385,12 @@
 
 
 static void
-test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+test (void *cls)
 {
   struct CpsRunContext *crc = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     GNUNET_break (0);

Modified: gnunet/src/datastore/test_datastore_api.c
===================================================================
--- gnunet/src/datastore/test_datastore_api.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/datastore/test_datastore_api.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -168,11 +168,9 @@
  * depending on the current state.
  *
  * @param cls the `struct CpsRunContext`
- * @param tc scheduler context (unused)
  */
 static void
-run_continuation (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc);
+run_continuation (void *cls);
 
 
 /**
@@ -394,11 +392,9 @@
  * depending on the current state.
  *
  * @param cls the `struct CpsRunContext`
- * @param tc scheduler context (unused)
  */
 static void
-run_continuation (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_continuation (void *cls)
 {
   struct CpsRunContext *crc = cls;
 

Modified: gnunet/src/datastore/test_datastore_api_management.c
===================================================================
--- gnunet/src/datastore/test_datastore_api_management.c        2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/datastore/test_datastore_api_management.c        2016-04-09 
23:14:03 UTC (rev 37005)
@@ -119,7 +119,7 @@
 
 
 static void
-run_continuation (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+run_continuation (void *cls);
 
 
 static void
@@ -182,7 +182,7 @@
 
 
 static void
-run_continuation (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_continuation (void *cls)
 {
   struct CpsRunContext *crc = cls;
 

Modified: gnunet/src/datastore/test_plugin_datastore.c
===================================================================
--- gnunet/src/datastore/test_plugin_datastore.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/datastore/test_plugin_datastore.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -84,8 +84,7 @@
 
 
 static void
-test (void *cls,
-      const struct GNUNET_SCHEDULER_TaskContext *tc);
+test (void *cls);
 
 
 /**
@@ -98,10 +97,10 @@
  * @param msg error message on error
  */
 static void
-put_continuation (void *cls, 
+put_continuation (void *cls,
                  const struct GNUNET_HashCode *key,
-                  uint32_t size, 
-                 int status, 
+                  uint32_t size,
+                 int status,
                  const char *msg)
 {
   struct CpsRunContext *crc = cls;
@@ -241,7 +240,7 @@
  * the transport and core.
  */
 static void
-cleaning_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleaning_task (void *cls)
 {
   struct CpsRunContext *crc = cls;
 
@@ -251,7 +250,7 @@
 
 
 static void
-update_continuation (void *cls, 
+update_continuation (void *cls,
                     int status,
                     const char *msg)
 {
@@ -264,11 +263,13 @@
 
 
 static void
-test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+test (void *cls)
 {
   struct CpsRunContext *crc = cls;
   struct GNUNET_HashCode key;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Test aborted.\n");
@@ -302,9 +303,9 @@
   case RP_UPDATE:
     crc->api->update (crc->api->cls,
                      guid,
-                     1, 
+                     1,
                      GNUNET_TIME_UNIT_ZERO_ABS,
-                      &update_continuation, 
+                      &update_continuation,
                      crc);
     break;
 
@@ -344,8 +345,8 @@
   char *libname;
 
   if (GNUNET_OK !=
-      GNUNET_CONFIGURATION_get_value_string (cfg, 
-                                            "DATASTORE", 
+      GNUNET_CONFIGURATION_get_value_string (cfg,
+                                            "DATASTORE",
                                             "DATABASE",
                                              &name))
   {
@@ -366,7 +367,7 @@
     FPRINTF (stderr, "Failed to load plugin `%s'!\n", name);
     GNUNET_free (libname);
     GNUNET_free (name);
-    ok = 77; /* mark test as skipped */    
+    ok = 77; /* mark test as skipped */
     return NULL;
   }
   GNUNET_free (libname);

Modified: gnunet/src/dht/dht_api.c
===================================================================
--- gnunet/src/dht/dht_api.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dht/dht_api.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -362,7 +362,7 @@
    * Did we start our receive loop yet?
    */
   int in_receive;
-  
+
 #if ENABLE_MALICIOUS
   /**
    * Handle of act malicious request.
@@ -496,11 +496,9 @@
  * Try reconnecting to the dht service.
  *
  * @param cls a `struct GNUNET_DHT_Handle`
- * @param tc scheduler context
  */
 static void
-try_reconnect (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+try_reconnect (void *cls)
 {
   struct GNUNET_DHT_Handle *handle = cls;
 
@@ -650,7 +648,7 @@
   head->in_pending_queue = GNUNET_NO;
   if (NULL != head->cont)
   {
-    head->cont (head->cont_cls, NULL);
+    head->cont (head->cont_cls);
     head->cont = NULL;
     head->cont_cls = NULL;
   }
@@ -663,7 +661,7 @@
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG, "Starting to process replies from DHT\n");
     handle->in_receive = GNUNET_YES;
-    
+
     GNUNET_CLIENT_receive (handle->client, &service_message_handler, handle,
                            GNUNET_TIME_UNIT_FOREVER_REL);
   }
@@ -899,7 +897,7 @@
    struct GNUNET_DHT_ActMaliciousHandle *mh;
    GNUNET_DHT_PutContinuation cont;
    void *cont_cls;
-   
+
    mh = handle->mh;
    if (NULL == mh)
     return GNUNET_OK;
@@ -907,7 +905,7 @@
   cont_cls = mh->cont_cls;
   if (NULL != cont)
     cont (cont_cls, GNUNET_OK);
-  
+
   return GNUNET_OK;
 }
 #endif
@@ -1110,7 +1108,7 @@
     pm->in_pending_queue = GNUNET_NO;
     GNUNET_assert (GNUNET_YES == pm->free_on_send);
     if (NULL != pm->cont)
-      pm->cont (pm->cont_cls, NULL);
+      pm->cont (pm->cont_cls);
     GNUNET_free (pm);
   }
   while (NULL != (ph = handle->put_head))
@@ -1137,11 +1135,9 @@
  * Timeout for the transmission of a fire&forget-request.  Clean it up.
  *
  * @param cls the `struct GNUNET_DHT_PutHandle *`
- * @param tc scheduler context
  */
 static void
-timeout_put_request (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_put_request (void *cls)
 {
   struct GNUNET_DHT_PutHandle *ph = cls;
   struct GNUNET_DHT_Handle *handle = ph->dht_handle;
@@ -1168,11 +1164,9 @@
  * the message pointer in the put handle to NULL.
  *
  * @param cls the `struct GNUNET_DHT_PutHandle`
- * @param tc unused
  */
 static void
-mark_put_message_gone (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc)
+mark_put_message_gone (void *cls)
 {
   struct GNUNET_DHT_PutHandle *ph = cls;
 
@@ -1570,10 +1564,10 @@
  * @param handle the DHT handle
  * @param action 1 to make the service malicious; 0 to make it benign
  * @param cont continuation to call when done (transmitting request to service)
- * @param cont_cls closure for @a cont        
+ * @param cont_cls closure for @a cont
  */
 struct GNUNET_DHT_ActMaliciousHandle *
-GNUNET_DHT_act_malicious (struct GNUNET_DHT_Handle *handle, 
+GNUNET_DHT_act_malicious (struct GNUNET_DHT_Handle *handle,
                           unsigned int action,
                           GNUNET_DHT_PutContinuation cont,
                           void *cont_cls)
@@ -1582,7 +1576,7 @@
   struct GNUNET_DHT_ActMaliciousHandle *mh;
   struct PendingMessage *pending;
   size_t msize;
-  
+
   msize = sizeof(struct GNUNET_DHT_ActMaliciousMessage);
   if (msize >= GNUNET_SERVER_MAX_MESSAGE_SIZE)
   {

Modified: gnunet/src/dht/gnunet-dht-get.c
===================================================================
--- gnunet/src/dht/gnunet-dht-get.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dht/gnunet-dht-get.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -87,10 +87,9 @@
  * Task run to clean up on timeout.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_task (void *cls)
 {
   if (NULL != get_handle)
   {

Modified: gnunet/src/dht/gnunet-dht-monitor.c
===================================================================
--- gnunet/src/dht/gnunet-dht-monitor.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dht/gnunet-dht-monitor.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -76,10 +76,9 @@
  * Stop monitoring request and start shutdown
  *
  * @param cls closure (unused)
- * @param tc Task Context
  */
 static void
-cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_task (void *cls)
 {
   if (verbose)
     FPRINTF (stderr, "%s",  "Cleaning up!\n");

Modified: gnunet/src/dht/gnunet-dht-put.c
===================================================================
--- gnunet/src/dht/gnunet-dht-put.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dht/gnunet-dht-put.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -87,8 +87,9 @@
  */
 static char *data;
 
+
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != dht_handle)
   {
@@ -101,9 +102,9 @@
  * Signature of the main function of a task.
  *
  * @param cls closure
- * @param success GNUNET_OK if the PUT was transmitted,
- *                GNUNET_NO on timeout,
- *                GNUNET_SYSERR on disconnect from service
+ * @param success #GNUNET_OK if the PUT was transmitted,
+ *                #GNUNET_NO on timeout,
+ *                #GNUNET_SYSERR on disconnect from service
  *                after the PUT message was transmitted
  *                (so we don't know if it was received or not)
  */

Modified: gnunet/src/dht/gnunet-service-dht.c
===================================================================
--- gnunet/src/dht/gnunet-service-dht.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dht/gnunet-service-dht.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -98,10 +98,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != ghh)
   {
@@ -159,10 +158,11 @@
   GDS_CLIENTS_init (server);
   if (GNUNET_OK != GDS_NEIGHBOURS_init ())
   {
-    shutdown_task (NULL, NULL);
+    shutdown_task (NULL);
     return;
   }
-  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task,
+  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
+                                &shutdown_task,
                                 NULL);
   GDS_transport_handle =
       GNUNET_TRANSPORT_connect (GDS_cfg, NULL, NULL, NULL, NULL, NULL);

Modified: gnunet/src/dht/gnunet-service-dht_clients.c
===================================================================
--- gnunet/src/dht/gnunet-service-dht_clients.c 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/dht/gnunet-service-dht_clients.c 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -450,16 +450,16 @@
  * itself (unless the heap is empty).
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-transmit_next_request_task (void *cls,
-                            const struct GNUNET_SCHEDULER_TaskContext *tc)
+transmit_next_request_task (void *cls)
 {
   struct ClientQueryRecord *cqr;
   struct GNUNET_TIME_Relative delay;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   retry_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   while (NULL != (cqr = GNUNET_CONTAINER_heap_remove_root (retry_heap)))

Modified: gnunet/src/dht/gnunet-service-dht_neighbours.c
===================================================================
--- gnunet/src/dht/gnunet-service-dht_neighbours.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/dht/gnunet-service-dht_neighbours.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -492,11 +492,9 @@
  * Clean up the "oh" field in the @a cls
  *
  * @param cls a `struct ConnectInfo`
- * @param tc unused
  */
 static void
-offer_hello_done (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+offer_hello_done (void *cls)
 {
   struct ConnectInfo *ci = cls;
 
@@ -707,17 +705,17 @@
  * and attempt to connect to them.
  *
  * @param cls closure for this task
- * @param tc the context under which the task is running
  */
 static void
-send_find_peer_message (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+send_find_peer_message (void *cls)
 {
   struct GNUNET_TIME_Relative next_send_time;
   struct BloomConstructorContext bcc;
   struct GNUNET_CONTAINER_BloomFilter *peer_bf;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   find_peer_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   if (newly_found_peers > bucket_size)

Modified: gnunet/src/dht/gnunet-service-wdht.c
===================================================================
--- gnunet/src/dht/gnunet-service-wdht.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/dht/gnunet-service-wdht.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -60,10 +60,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GDS_NEIGHBOURS_done ();
   GDS_DATACACHE_done ();
@@ -100,7 +99,7 @@
   GDS_CLIENTS_init (server);
   if (GNUNET_OK != GDS_NEIGHBOURS_init ())
   {
-    shutdown_task (NULL, NULL);
+    shutdown_task (NULL);
     return;
   }
   GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,

Modified: gnunet/src/dht/gnunet-service-wdht_clients.c
===================================================================
--- gnunet/src/dht/gnunet-service-wdht_clients.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/dht/gnunet-service-wdht_clients.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -874,16 +874,16 @@
  * itself (unless the heap is empty).
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-transmit_next_request_task (void *cls,
-                            const struct GNUNET_SCHEDULER_TaskContext *tc)
+transmit_next_request_task (void *cls)
 {
   struct ClientQueryRecord *cqr;
   struct GNUNET_TIME_Relative delay;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   retry_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   while (NULL != (cqr = GNUNET_CONTAINER_heap_remove_root (retry_heap)))

Modified: gnunet/src/dht/gnunet-service-wdht_neighbours.c
===================================================================
--- gnunet/src/dht/gnunet-service-wdht_neighbours.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/dht/gnunet-service-wdht_neighbours.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -931,11 +931,9 @@
  * possibly initiate cleanup.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-trail_timeout_callback (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+trail_timeout_callback (void *cls)
 {
   struct Trail *trail;
   struct GNUNET_TIME_Relative left;
@@ -974,11 +972,9 @@
  * Initiate a random walk.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-do_random_walk (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_random_walk (void *cls)
 {
   static unsigned int walk_layer;
   struct FriendInfo *friend;

Modified: gnunet/src/dht/gnunet-service-xdht.c
===================================================================
--- gnunet/src/dht/gnunet-service-xdht.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/dht/gnunet-service-xdht.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -73,10 +73,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GDS_NEIGHBOURS_done ();
   GDS_DATACACHE_done ();
@@ -123,7 +122,7 @@
   }
   if (GNUNET_OK != GDS_NEIGHBOURS_init ())
   {
-    shutdown_task (NULL, NULL);
+    shutdown_task (NULL);
     return;
   }
   GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,

Modified: gnunet/src/dht/gnunet-service-xdht_clients.c
===================================================================
--- gnunet/src/dht/gnunet-service-xdht_clients.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/dht/gnunet-service-xdht_clients.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -871,16 +871,16 @@
  * itself (unless the heap is empty).
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-transmit_next_request_task (void *cls,
-                            const struct GNUNET_SCHEDULER_TaskContext *tc)
+transmit_next_request_task (void *cls)
 {
   struct ClientQueryRecord *cqr;
   struct GNUNET_TIME_Relative delay;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   retry_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   while (NULL != (cqr = GNUNET_CONTAINER_heap_remove_root (retry_heap)))

Modified: gnunet/src/dht/gnunet-service-xdht_neighbours.c
===================================================================
--- gnunet/src/dht/gnunet-service-xdht_neighbours.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/dht/gnunet-service-xdht_neighbours.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -2674,11 +2674,9 @@
  * finger identity through this random friend.
  *
  * @param cls closure for this task
- * @param tc the context under which the task is running
  */
 static void
-send_find_finger_trail_message (void *cls,
-                                const struct GNUNET_SCHEDULER_TaskContext *tc)
+send_find_finger_trail_message (void *cls)
 {
   struct FriendInfo *target_friend;
   struct GNUNET_HashCode trail_id;
@@ -3219,12 +3217,11 @@
  * Periodic task to verify current successor. There can be multiple trails to 
reach
  * to successor, choose the shortest one and send verify successor message
  * across that trail.
+ *
  * @param cls closure for this task
- * @param tc the context under which the task is running
  */
 static void
-send_verify_successor_message (void *cls,
-                               const struct GNUNET_SCHEDULER_TaskContext *tc)
+send_verify_successor_message (void *cls)
 {
   struct FriendInfo *target_friend;
   struct GNUNET_HashCode trail_id;
@@ -5077,11 +5074,11 @@
   unsigned int num_retries_scheduled;
 };
 
+
 void
-send_notify_new_successor (void *cls,
-                           const struct GNUNET_SCHEDULER_TaskContext
-                           * tc);
+send_notify_new_successor (void *cls);
 
+
 /**
  * Check if the peer which sent us verify successor result message is still 
ours
  * successor or not. If not, then compare existing successor and probable 
successor.
@@ -5250,11 +5247,9 @@
 
 
 void
-send_notify_new_successor (void *cls,
-                           const struct GNUNET_SCHEDULER_TaskContext
-                           * tc)
+send_notify_new_successor (void *cls)
 {
-  struct SendNotifyContext *ctx = (struct SendNotifyContext *) cls;
+  struct SendNotifyContext *ctx = cls;
 
   GDS_NEIGHBOURS_send_notify_new_successor (ctx->source_peer,
                                             ctx->successor,

Modified: gnunet/src/dht/gnunet_dht_profiler.c
===================================================================
--- gnunet/src/dht/gnunet_dht_profiler.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/dht/gnunet_dht_profiler.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -406,28 +406,30 @@
  */
 static unsigned int tries;
 
+
 /**
  * Task that collects successor statistics from all the peers.
+ *
  * @param cls
- * @param tc
  */
 static void
-collect_stats (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+collect_stats (void *cls);
 
+
 /**
  * Connect to DHT services of active peers
  */
 static void
-start_profiling();
+start_profiling (void);
 
+
 /**
  * Shutdown task.  Cleanup all resources and operations.
  *
  * @param cls NULL
- * @param tc scheduler task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   struct ActiveContext *ac;
   unsigned int cnt;
@@ -546,10 +548,9 @@
  * Task to cancel DHT GET.
  *
  * @param cls NULL
- * @param tc scheduler task context
  */
 static void
-cancel_get (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cancel_get (void *cls)
 {
   struct ActiveContext *ac = cls;
   struct Context *ctx = ac->ctx;
@@ -637,10 +638,9 @@
  * Task to do DHT GETs
  *
  * @param cls the active context
- * @param tc the scheduler task context
  */
 static void
-delayed_get (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+delayed_get (void *cls)
 {
   struct ActiveContext *ac = cls;
   struct ActiveContext *get_ac;
@@ -681,14 +681,15 @@
  * clear the operation during shutdown.
  *
  * @param cls the context
- * @return tc scheduler task context.
  */
 static void
-teardown_dht_connection (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+teardown_dht_connection (void *cls)
 {
   struct Context *ctx = cls;
   struct GNUNET_TESTBED_Operation *op;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
   GNUNET_assert (NULL != ctx);
@@ -725,13 +726,12 @@
 
 
 /**
- * Task to do DHT PUTS
+ * Task to do DHT PUTs
  *
  * @param cls the active context
- * @param tc the scheduler task context
  */
 static void
-delayed_put (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+delayed_put (void *cls)
 {
   struct ActiveContext *ac = cls;
 
@@ -1210,15 +1210,18 @@
  * Task that collects peer and its corresponding successors.
  *
  * @param cls Closure (NULL).
- * @param tc Task Context.
  */
 static void
-collect_stats (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+collect_stats (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
     return;
 
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Start collecting statistics...\n");
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Start collecting statistics...\n");
   GNUNET_assert(NULL != testbed_handles);
 
   if (0 != max_searches)

Modified: gnunet/src/dht/test_dht_api.c
===================================================================
--- gnunet/src/dht/test_dht_api.c       2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dht/test_dht_api.c       2016-04-09 23:14:03 UTC (rev 37005)
@@ -82,7 +82,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   GNUNET_SCHEDULER_cancel (die_task);
   die_task = NULL;
@@ -116,11 +116,9 @@
  * Signature of the main function of a task.
  *
  * @param cls closure
- * @param tc context information (why was this task triggered now)
  */
 static void
-test_get_stop (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+test_get_stop (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Called test_get_stop!\n");

Modified: gnunet/src/dht/test_dht_monitor.c
===================================================================
--- gnunet/src/dht/test_dht_monitor.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dht/test_dht_monitor.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -108,11 +108,9 @@
  * the testbed.
  *
  * @param cls the 'struct GNUNET_DHT_TestContext'
- * @param tc scheduler context
  */
 static void
-shutdown_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct GNUNET_DHT_TEST_Context *ctx = cls;
   unsigned int i;
@@ -197,11 +195,9 @@
  * Task to put the id of each peer into the DHT.
  *
  * @param cls array with NUM_PEERS DHT handles
- * @param tc Task context
  */
 static void
-do_puts (void *cls,
-        const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_puts (void *cls)
 {
   struct GNUNET_DHT_Handle **hs = cls;
   struct GNUNET_HashCode key;

Modified: gnunet/src/dht/test_dht_topo.c
===================================================================
--- gnunet/src/dht/test_dht_topo.c      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dht/test_dht_topo.c      2016-04-09 23:14:03 UTC (rev 37005)
@@ -220,11 +220,9 @@
  * the testbed.
  *
  * @param cls the 'struct GNUNET_DHT_TestContext'
- * @param tc scheduler context
  */
 static void
-shutdown_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct GNUNET_DHT_TEST_Context *ctx = cls;
   struct GetOperation *get_op;
@@ -323,8 +321,7 @@
  * @param tc Task context
  */
 static void
-do_puts (void *cls,
-        const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_puts (void *cls)
 {
   struct GNUNET_DHT_Handle **hs = cls;
   struct GNUNET_HashCode key;

Modified: gnunet/src/dns/dns_api.c
===================================================================
--- gnunet/src/dns/dns_api.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dns/dns_api.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -162,8 +162,7 @@
  * @param tc scheduler context (unused)
  */
 static void
-reconnect (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect (void *cls)
 {
   struct GNUNET_DNS_Handle *dh = cls;
   struct ReplyQueueEntry *qe;
@@ -440,7 +439,7 @@
  * @param reply reply data
  */
 void
-GNUNET_DNS_request_answer (struct GNUNET_DNS_RequestHandle *rh,        
+GNUNET_DNS_request_answer (struct GNUNET_DNS_RequestHandle *rh,
                           uint16_t reply_length,
                           const char *reply)
 {

Modified: gnunet/src/dns/dnsstub.c
===================================================================
--- gnunet/src/dns/dnsstub.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dns/dnsstub.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -185,11 +185,9 @@
  * Read a DNS response from the (unhindered) UDP-Socket
  *
  * @param cls socket to read from
- * @param tc scheduler context (must be shutdown or read ready)
  */
 static void
-read_response (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc);
+read_response (void *cls);
 
 
 /**
@@ -466,16 +464,16 @@
  * Read a DNS response from the (unhindered) UDP-Socket
  *
  * @param cls socket to read from
- * @param tc scheduler context (must be shutdown or read ready)
  */
 static void
-read_response (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+read_response (void *cls)
 {
   struct GNUNET_DNSSTUB_RequestSocket *rs = cls;
   struct GNUNET_NETWORK_FDSet *rset;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   rs->read_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 == (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY))
   {
     /* timeout or shutdown */

Modified: gnunet/src/dns/gnunet-dns-monitor.c
===================================================================
--- gnunet/src/dns/gnunet-dns-monitor.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dns/gnunet-dns-monitor.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -303,7 +303,7 @@
  * Shutdown.
  */
 static void
-do_disconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_disconnect (void *cls)
 {
   if (NULL != handle)
   {

Modified: gnunet/src/dns/gnunet-dns-redirector.c
===================================================================
--- gnunet/src/dns/gnunet-dns-redirector.c      2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/dns/gnunet-dns-redirector.c      2016-04-09 23:14:03 UTC (rev 
37005)
@@ -177,7 +177,7 @@
  * Shutdown.
  */
 static void
-do_disconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_disconnect (void *cls)
 {
   if (NULL != handle)
   {

Modified: gnunet/src/dns/gnunet-service-dns.c
===================================================================
--- gnunet/src/dns/gnunet-service-dns.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dns/gnunet-service-dns.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -273,11 +273,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-cleanup_task (void *cls GNUNET_UNUSED,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_task (void *cls GNUNET_UNUSED)
 {
   unsigned int i;
 

Modified: gnunet/src/dv/gnunet-dv.c
===================================================================
--- gnunet/src/dv/gnunet-dv.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dv/gnunet-dv.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -119,11 +119,9 @@
  * Task run on shutdown.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_DV_service_disconnect (sh);
   sh = NULL;

Modified: gnunet/src/dv/gnunet-service-dv.c
===================================================================
--- gnunet/src/dv/gnunet-service-dv.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dv/gnunet-service-dv.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -398,11 +398,9 @@
  *
  * @param cls the 'struct DirectNeighbor' of the peer we're building
  *        a routing consensus with
- * @param tc scheduler context
  */
 static void
-initiate_set_union (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc);
+initiate_set_union (void *cls);
 
 
 /**
@@ -1132,11 +1130,9 @@
  * Task to run #refresh_routes() on all direct neighbours.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-refresh_routes_task (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+refresh_routes_task (void *cls)
 {
   rr_task = NULL;
   GNUNET_CONTAINER_multipeermap_iterate (direct_neighbors,
@@ -1692,11 +1688,9 @@
  *
  * @param cls the `struct DirectNeighbor *` of the peer we're building
  *        a routing consensus with
- * @param tc scheduler context
  */
 static void
-initiate_set_union (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc)
+initiate_set_union (void *cls)
 {
   struct DirectNeighbor *neighbor = cls;
 
@@ -2082,11 +2076,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   unsigned int i;
 

Modified: gnunet/src/dv/test_transport_dv.c
===================================================================
--- gnunet/src/dv/test_transport_dv.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/dv/test_transport_dv.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -36,8 +36,7 @@
 
 
 static void
-do_shutdown (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   shutdown_task = NULL;
   if (NULL != topology_op)

Modified: gnunet/src/exit/gnunet-daemon-exit.c
===================================================================
--- gnunet/src/exit/gnunet-daemon-exit.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/exit/gnunet-daemon-exit.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -3139,8 +3139,7 @@
  * @param tc scheduler context
  */
 static void
-dummy_task (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+dummy_task (void *cls)
 {
   /* just terminate */
 }
@@ -3153,8 +3152,7 @@
  * @param tc scheduler context
  */
 static void
-cleanup (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup (void *cls)
 {
   unsigned int i;
 
@@ -3428,11 +3426,9 @@
  * DHT.  This task is run periodically to do the DHT PUT.
  *
  * @param cls closure
- * @param tc scheduler context
  */
 static void
-do_dht_put (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc);
+do_dht_put (void *cls);
 
 
 /**
@@ -3458,11 +3454,9 @@
  * DHT.  This task is run periodically to do the DHT PUT.
  *
  * @param cls closure
- * @param tc scheduler context
  */
 static void
-do_dht_put (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_dht_put (void *cls)
 {
   struct GNUNET_TIME_Absolute expiration;
 

Modified: gnunet/src/fragmentation/defragmentation.c
===================================================================
--- gnunet/src/fragmentation/defragmentation.c  2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fragmentation/defragmentation.c  2016-04-09 23:14:03 UTC (rev 
37005)
@@ -258,11 +258,9 @@
  * Send acknowledgement to the other peer now.
  *
  * @param cls the message context
- * @param tc the scheduler context
  */
 static void
-send_ack (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+send_ack (void *cls)
 {
   struct MessageContext *mc = cls;
   struct GNUNET_DEFRAGMENT_Context *dc = mc->dc;

Modified: gnunet/src/fragmentation/fragmentation.c
===================================================================
--- gnunet/src/fragmentation/fragmentation.c    2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fragmentation/fragmentation.c    2016-04-09 23:14:03 UTC (rev 
37005)
@@ -167,11 +167,9 @@
  * Transmit the next fragment to the other peer.
  *
  * @param cls the `struct GNUNET_FRAGMENT_Context`
- * @param tc scheduler context
  */
 static void
-transmit_next (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+transmit_next (void *cls)
 {
   struct GNUNET_FRAGMENT_Context *fc = cls;
   char msg[fc->mtu];

Modified: gnunet/src/fragmentation/test_fragmentation.c
===================================================================
--- gnunet/src/fragmentation/test_fragmentation.c       2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/fragmentation/test_fragmentation.c       2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -68,7 +68,7 @@
 
 
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   ret = 0;
   shutdown_task = NULL;

Modified: gnunet/src/fragmentation/test_fragmentation_parallel.c
===================================================================
--- gnunet/src/fragmentation/test_fragmentation_parallel.c      2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/fragmentation/test_fragmentation_parallel.c      2016-04-09 
23:14:03 UTC (rev 37005)
@@ -60,10 +60,11 @@
 
 static struct GNUNET_FRAGMENT_Context *frags[NUM_MSGS];
 
-static struct GNUNET_SCHEDULER_Task * shutdown_task;
+static struct GNUNET_SCHEDULER_Task *shutdown_task;
 
+
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   unsigned int i;
 

Modified: gnunet/src/fs/fs_api.c
===================================================================
--- gnunet/src/fs/fs_api.c      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/fs_api.c      2016-04-09 23:14:03 UTC (rev 37005)
@@ -108,11 +108,9 @@
  * and stopping others.
  *
  * @param cls the `struct GNUNET_FS_Handle *`
- * @param tc scheduler context
  */
 static void
-process_job_queue (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc)
+process_job_queue (void *cls)
 {
   struct GNUNET_FS_Handle *h = cls;
   struct GNUNET_FS_QueueEntry *qe;

Modified: gnunet/src/fs/fs_api.h
===================================================================
--- gnunet/src/fs/fs_api.h      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/fs_api.h      2016-04-09 23:14:03 UTC (rev 37005)
@@ -757,11 +757,9 @@
  * Main function that performs the upload.
  *
  * @param cls `struct GNUNET_FS_PublishContext` identifies the upload
- * @param tc task context
  */
 void
-GNUNET_FS_publish_main_ (void *cls,
-                         const struct GNUNET_SCHEDULER_TaskContext *tc);
+GNUNET_FS_publish_main_ (void *cls);
 
 
 /**
@@ -828,11 +826,9 @@
  * request for the file.
  *
  * @param cls the 'struct GNUNET_FS_DownloadContext'
- * @param tc scheduler context
  */
 void
-GNUNET_FS_download_start_task_ (void *cls,
-                                const struct GNUNET_SCHEDULER_TaskContext *tc);
+GNUNET_FS_download_start_task_ (void *cls);
 
 
 

Modified: gnunet/src/fs/fs_dirmetascan.c
===================================================================
--- gnunet/src/fs/fs_dirmetascan.c      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/fs_dirmetascan.c      2016-04-09 23:14:03 UTC (rev 37005)
@@ -222,11 +222,9 @@
  * Task run last to shut everything down.
  *
  * @param cls the 'struct GNUNET_FS_DirScanner'
- * @param tc unused
  */
 static void
-finish_scan (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+finish_scan (void *cls)
 {
   struct GNUNET_FS_DirScanner *ds = cls;
 

Modified: gnunet/src/fs/fs_download.c
===================================================================
--- gnunet/src/fs/fs_download.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/fs_download.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -1372,10 +1372,9 @@
  * Reconnect to the FS service and transmit our queries NOW.
  *
  * @param cls our download context
- * @param tc unused
  */
 static void
-do_reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_reconnect (void *cls)
 {
   struct GNUNET_FS_DownloadContext *dc = cls;
   struct GNUNET_CLIENT_Connection *client;
@@ -1625,10 +1624,9 @@
  * the current IBlock from the existing file.
  *
  * @param cls the 'struct ReconstructContext'
- * @param tc scheduler context
  */
 static void
-reconstruct_cont (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconstruct_cont (void *cls)
 {
   struct GNUNET_FS_DownloadContext *dc = cls;
 
@@ -1655,10 +1653,9 @@
  * Task requesting the next block from the tree encoder.
  *
  * @param cls the 'struct GNUJNET_FS_DownloadContext' we're processing
- * @param tc task context
  */
 static void
-get_next_block (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+get_next_block (void *cls)
 {
   struct GNUNET_FS_DownloadContext *dc = cls;
 
@@ -1855,11 +1852,9 @@
  * request for the file.
  *
  * @param cls the 'struct GNUNET_FS_DownloadContext'
- * @param tc scheduler context
  */
 void
-GNUNET_FS_download_start_task_ (void *cls,
-                                const struct GNUNET_SCHEDULER_TaskContext *tc)
+GNUNET_FS_download_start_task_ (void *cls)
 {
   struct GNUNET_FS_DownloadContext *dc = cls;
   struct GNUNET_FS_ProgressInfo pi;

Modified: gnunet/src/fs/fs_publish.c
===================================================================
--- gnunet/src/fs/fs_publish.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/fs_publish.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -413,11 +413,9 @@
  * the final result.
  *
  * @param cls our publishing context
- * @param tc scheduler's task context (not used)
  */
 static void
-encode_cont (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+encode_cont (void *cls)
 {
   struct GNUNET_FS_PublishContext *pc = cls;
   struct GNUNET_FS_FileInformation *p;
@@ -960,11 +958,9 @@
  * Main function that performs the upload.
  *
  * @param cls `struct GNUNET_FS_PublishContext *` identifies the upload
- * @param tc task context
  */
 void
-GNUNET_FS_publish_main_ (void *cls,
-                         const struct GNUNET_SCHEDULER_TaskContext *tc)
+GNUNET_FS_publish_main_ (void *cls)
 {
   struct GNUNET_FS_PublishContext *pc = cls;
   struct GNUNET_FS_ProgressInfo pi;

Modified: gnunet/src/fs/fs_publish_ksk.c
===================================================================
--- gnunet/src/fs/fs_publish_ksk.c      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/fs_publish_ksk.c      2016-04-09 23:14:03 UTC (rev 37005)
@@ -110,11 +110,9 @@
  * of the keywords).
  *
  * @param cls closure of type `struct PublishKskContext *`
- * @param tc unused
  */
 static void
-publish_ksk_cont (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc);
+publish_ksk_cont (void *cls);
 
 
 /**
@@ -148,11 +146,9 @@
  * publishing operation (iterating over all of the keywords).
  *
  * @param cls closure of type `struct GNUNET_FS_PublishKskContext *`
- * @param tc unused
  */
 static void
-publish_ksk_cont (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+publish_ksk_cont (void *cls)
 {
   struct GNUNET_FS_PublishKskContext *pkc = cls;
   const char *keyword;

Modified: gnunet/src/fs/fs_publish_ublock.c
===================================================================
--- gnunet/src/fs/fs_publish_ublock.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/fs_publish_ublock.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -147,11 +147,9 @@
  * Run the continuation.
  *
  * @param cls the `struct GNUNET_FS_PublishUblockContext *`
- * @param tc scheduler context
  */
 static void
-run_cont (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_cont (void *cls)
 {
   struct GNUNET_FS_PublishUblockContext *uc = cls;
 

Modified: gnunet/src/fs/fs_search.c
===================================================================
--- gnunet/src/fs/fs_search.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/fs_search.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -215,11 +215,9 @@
  * Handle the case where we have failed to receive a response for our probe.
  *
  * @param cls our `struct GNUNET_FS_SearchResult *`
- * @param tc scheduler context
  */
 static void
-probe_failure_handler (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+probe_failure_handler (void *cls)
 {
   struct GNUNET_FS_SearchResult *sr = cls;
 
@@ -241,11 +239,9 @@
  * Handle the case where we have gotten a response for our probe.
  *
  * @param cls our `struct GNUNET_FS_SearchResult *`
- * @param tc scheduler context
  */
 static void
-probe_success_handler (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+probe_success_handler (void *cls)
 {
   struct GNUNET_FS_SearchResult *sr = cls;
 
@@ -364,11 +360,9 @@
  * Task run periodically to remind clients that a probe is active.
  *
  * @param cls the `struct GNUNET_FS_SearchResult` that we are probing for
- * @param tc scheduler context
  */
 static void
-probe_ping_task_cb (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+probe_ping_task_cb (void *cls)
 {
   struct GNUNET_FS_Handle *h = cls;
   struct GNUNET_FS_SearchResult *sr;
@@ -1245,10 +1239,9 @@
  * our queries NOW.
  *
  * @param cls our search context
- * @param tc unused
  */
 static void
-do_reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_reconnect (void *cls)
 {
   struct GNUNET_FS_SearchContext *sc = cls;
   struct GNUNET_CLIENT_Connection *client;
@@ -1637,7 +1630,7 @@
 
   GNUNET_assert (NULL == sc->client);
   GNUNET_assert (NULL == sc->task);
-  do_reconnect (sc, NULL);
+  do_reconnect (sc);
   GNUNET_FS_search_sync_ (sc);
   pi.status = GNUNET_FS_STATUS_SEARCH_CONTINUED;
   sc->client_info = GNUNET_FS_search_make_status_ (&pi, sc->h, sc);

Modified: gnunet/src/fs/fs_test_lib.c
===================================================================
--- gnunet/src/fs/fs_test_lib.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/fs_test_lib.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -183,8 +183,7 @@
  * @param tc scheduler context (unused)
  */
 static void
-report_uri (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+report_uri (void *cls)
 {
   struct TestPublishOperation *po = cls;
 
@@ -208,10 +207,9 @@
  * Task scheduled to run when publish operation times out.
  *
  * @param cls the publish operation context
- * @param tc scheduler context (unused)
  */
 static void
-publish_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+publish_timeout (void *cls)
 {
   struct TestPublishOperation *po = cls;
 
@@ -480,10 +478,9 @@
  * Task scheduled to run when download operation times out.
  *
  * @param cls the download operation context
- * @param tc scheduler context (unused)
  */
 static void
-download_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+download_timeout (void *cls)
 {
   struct TestDownloadOperation *dop = cls;
 
@@ -504,11 +501,9 @@
  * Task scheduled to report on the completion of our download operation.
  *
  * @param cls the download operation context
- * @param tc scheduler context (unused)
  */
 static void
-report_success (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+report_success (void *cls)
 {
   struct TestDownloadOperation *dop = cls;
 

Modified: gnunet/src/fs/fs_tree.c
===================================================================
--- gnunet/src/fs/fs_tree.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/fs_tree.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -352,7 +352,7 @@
     te->uri->data.chk.chk = te->chk_tree[off];
     te->uri->data.chk.file_length = GNUNET_htonll (te->size);
     te->in_next = GNUNET_NO;
-    te->cont (te->cls, NULL);
+    te->cont (te->cls);
     return;
   }
   if (0 == te->current_depth)
@@ -363,7 +363,7 @@
         te->reader (te->cls, te->publish_offset, pt_size, iob, &te->emsg))
     {
       te->in_next = GNUNET_NO;
-      te->cont (te->cls, NULL);
+      te->cont (te->cls);
       return;
     }
     pt_block = iob;

Modified: gnunet/src/fs/fs_unindex.c
===================================================================
--- gnunet/src/fs/fs_unindex.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/fs_unindex.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -626,11 +626,9 @@
  * processed all blocks.  Clean up.
  *
  * @param cls our unindexing context
- * @param tc not used
  */
 static void
-unindex_extract_keywords (void *cls,
-                          const struct GNUNET_SCHEDULER_TaskContext *tc)
+unindex_extract_keywords (void *cls)
 {
   struct GNUNET_FS_UnindexContext *uc = cls;
 

Modified: gnunet/src/fs/gnunet-auto-share.c
===================================================================
--- gnunet/src/fs/gnunet-auto-share.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/gnunet-auto-share.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -317,17 +317,15 @@
  * Task run on shutdown.  Serializes our current state to disk.
  *
  * @param cls closure, unused
- * @param tc scheduler context, unused
  */
 static void
-do_stop_task (void *cls, 
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_stop_task (void *cls)
 {
   kill_task = NULL;
   do_shutdown = GNUNET_YES;
   if (NULL != publish_proc)
   {
-    GNUNET_OS_process_kill (publish_proc, 
+    GNUNET_OS_process_kill (publish_proc,
                            SIGKILL);
     return;
   }
@@ -351,11 +349,9 @@
  * process died).
  *
  * @param cls the `struct WorkItem` we were working on
- * @param tc context
  */
 static void
-maint_child_death (void *cls, 
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+maint_child_death (void *cls)
 {
   struct WorkItem *wi = cls;
   struct GNUNET_HashCode key;
@@ -364,10 +360,12 @@
   int ret;
   char c;
   const struct GNUNET_DISK_FileHandle *pr;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   run_task = NULL;
   pr = GNUNET_DISK_pipe_handle (sigpipe,
                                GNUNET_DISK_PIPE_END_READ);
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 == (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY))
   {
     /* shutdown scheduled us, someone else will kill child,
@@ -389,7 +387,7 @@
   {
     /* process still running? Then where did the SIGCHLD come from?
        Well, let's declare it spurious (kernel bug?) and keep rolling.
-    */  
+    */
     GNUNET_break (0);
     run_task =
       GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
@@ -398,7 +396,7 @@
     return;
   }
   GNUNET_assert (GNUNET_OK == ret);
-  
+
   GNUNET_OS_process_destroy (publish_proc);
   publish_proc = NULL;
 
@@ -457,11 +455,9 @@
  * Function called to process work items.
  *
  * @param cls closure, NULL
- * @param tc scheduler context (unused)
  */
 static void
-work (void *cls,
-      const struct GNUNET_SCHEDULER_TaskContext *tc)
+work (void *cls)
 {
   static char *argv[14];
   static char anon_level[20];
@@ -521,7 +517,7 @@
                                             NULL);
     return;
   }
-  pr = GNUNET_DISK_pipe_handle (sigpipe, 
+  pr = GNUNET_DISK_pipe_handle (sigpipe,
                                GNUNET_DISK_PIPE_END_READ);
   run_task =
     GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
@@ -549,13 +545,13 @@
 
   if (0 != STAT (filename, &sbuf))
   {
-    GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, 
-                             "stat", 
+    GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING,
+                             "stat",
                              filename);
     return GNUNET_OK;
   }
-  GNUNET_CRYPTO_hash (filename, 
-                     strlen (filename), 
+  GNUNET_CRYPTO_hash (filename,
+                     strlen (filename),
                      &fx[0]);
   if (!S_ISDIR (sbuf.st_mode))
   {
@@ -564,8 +560,8 @@
     fattr[0] = GNUNET_htonll (sbuf.st_size);
     fattr[0] = GNUNET_htonll (sbuf.st_mtime);
 
-    GNUNET_CRYPTO_hash (fattr, 
-                       sizeof (fattr), 
+    GNUNET_CRYPTO_hash (fattr,
+                       sizeof (fattr),
                        &fx[1]);
   }
   else
@@ -579,7 +575,7 @@
   }
   /* use hash here to make hierarchical structure distinct from
      all files on the same level */
-  GNUNET_CRYPTO_hash (fx, 
+  GNUNET_CRYPTO_hash (fx,
                      sizeof (fx),
                      &ft);
   /* use XOR here so that order of the files in the directory
@@ -653,11 +649,9 @@
  * Periodically run task to update our view of the directory to share.
  *
  * @param cls NULL
- * @param tc scheduler context, unused
  */
 static void
-scan (void *cls, 
-      const struct GNUNET_SCHEDULER_TaskContext *tc)
+scan (void *cls)
 {
   run_task = NULL;
   start_time = GNUNET_TIME_absolute_get ();
@@ -695,7 +689,7 @@
   }
   else
   {
-    run_task = GNUNET_SCHEDULER_add_now (&work, 
+    run_task = GNUNET_SCHEDULER_add_now (&work,
                                         NULL);
   }
 }
@@ -710,15 +704,15 @@
  * @param c configuration
  */
 static void
-run (void *cls, 
-     char *const *args, 
+run (void *cls,
+     char *const *args,
      const char *cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *c)
 {
   /* check arguments */
-  if ( (NULL == args[0]) || 
+  if ( (NULL == args[0]) ||
        (NULL != args[1]) ||
-       (GNUNET_YES != 
+       (GNUNET_YES !=
        GNUNET_DISK_directory_test (args[0],
                                    GNUNET_YES)) )
   {
@@ -729,14 +723,14 @@
   cfg_filename = GNUNET_strdup (cfgfile);
   cfg = c;
   dir_name = args[0];
-  work_finished = GNUNET_CONTAINER_multihashmap_create (1024, 
+  work_finished = GNUNET_CONTAINER_multihashmap_create (1024,
                                                        GNUNET_NO);
   load_state ();
   run_task = GNUNET_SCHEDULER_add_with_priority 
(GNUNET_SCHEDULER_PRIORITY_IDLE,
-                                                &scan, 
+                                                &scan,
                                                 NULL);
   kill_task =
-      GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, 
+      GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
                                    &do_stop_task,
                                     NULL);
 }
@@ -799,10 +793,10 @@
   int ok;
   struct GNUNET_SIGNAL_Context *shc_chld;
 
-  if (GNUNET_OK != 
+  if (GNUNET_OK !=
       GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
     return 2;
-  sigpipe = GNUNET_DISK_pipe (GNUNET_NO, GNUNET_NO, 
+  sigpipe = GNUNET_DISK_pipe (GNUNET_NO, GNUNET_NO,
                              GNUNET_NO, GNUNET_NO);
   GNUNET_assert (NULL != sigpipe);
   shc_chld =
@@ -809,7 +803,7 @@
     GNUNET_SIGNAL_handler_install (GNUNET_SIGCHLD,
                                   &sighandler_child_death);
   ok = (GNUNET_OK ==
-       GNUNET_PROGRAM_run (argc, argv, 
+       GNUNET_PROGRAM_run (argc, argv,
                            "gnunet-auto-share [OPTIONS] FILENAME",
                            gettext_noop
                            ("Automatically publish files from a directory on 
GNUnet"),
@@ -823,7 +817,7 @@
   }
   while (NULL != (wi = work_head))
   {
-    GNUNET_CONTAINER_DLL_remove (work_head, 
+    GNUNET_CONTAINER_DLL_remove (work_head,
                                 work_tail,
                                 wi);
     GNUNET_free (wi->filename);

Modified: gnunet/src/fs/gnunet-daemon-fsprofiler.c
===================================================================
--- gnunet/src/fs/gnunet-daemon-fsprofiler.c    2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/gnunet-daemon-fsprofiler.c    2016-04-09 23:14:03 UTC (rev 
37005)
@@ -267,10 +267,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct Pattern *p;
 
@@ -313,10 +312,9 @@
  * Task run when a publish operation should be stopped.
  *
  * @param cls the 'struct Pattern' of the publish operation to stop
- * @param tc unused
  */
 static void
-publish_stop_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+publish_stop_task (void *cls)
 {
   struct Pattern *p = cls;
 
@@ -329,10 +327,9 @@
  * Task run when a download operation should be stopped.
  *
  * @param cls the 'struct Pattern' of the download operation to stop
- * @param tc unused
  */
 static void
-download_stop_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+download_stop_task (void *cls)
 {
   struct Pattern *p = cls;
 
@@ -345,10 +342,9 @@
  * Task run when a download operation should be stopped.
  *
  * @param cls the 'struct Pattern' of the download operation to stop
- * @param tc unused
  */
 static void
-search_stop_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+search_stop_task (void *cls)
 {
   struct Pattern *p = cls;
 
@@ -498,16 +494,16 @@
  * Start publish operation.
  *
  * @param cls the 'struct Pattern' specifying the operation to perform
- * @param tc scheduler context
  */
 static void
-start_publish (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+start_publish (void *cls)
 {
   struct Pattern *p = cls;
   struct GNUNET_FS_FileInformation *fi;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   p->task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   fi = make_file (p->x, p->y, p);
@@ -523,16 +519,16 @@
  * Start download operation.
  *
  * @param cls the 'struct Pattern' specifying the operation to perform
- * @param tc scheduler context
  */
 static void
-start_download (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+start_download (void *cls)
 {
   struct Pattern *p = cls;
   struct GNUNET_FS_Uri *keywords;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   p->task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   keywords = make_keywords (p->x);

Modified: gnunet/src/fs/gnunet-download.c
===================================================================
--- gnunet/src/fs/gnunet-download.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/gnunet-download.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -54,7 +54,7 @@
 
 
 static void
-cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_task (void *cls)
 {
   GNUNET_FS_stop (ctx);
   ctx = NULL;
@@ -62,7 +62,7 @@
 
 
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != dc)
   {

Modified: gnunet/src/fs/gnunet-fs-profiler.c
===================================================================
--- gnunet/src/fs/gnunet-fs-profiler.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/gnunet-fs-profiler.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -109,11 +109,9 @@
  * all statistics.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-terminate_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+terminate_task (void *cls)
 {
   terminate_taskid = NULL;
   GNUNET_TESTBED_get_statistics (0, NULL,

Modified: gnunet/src/fs/gnunet-publish.c
===================================================================
--- gnunet/src/fs/gnunet-publish.c      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/gnunet-publish.c      2016-04-09 23:14:03 UTC (rev 37005)
@@ -146,11 +146,9 @@
  * FS state.
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-do_stop_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_stop_task (void *cls)
 {
   struct GNUNET_FS_PublishContext *p;
 

Modified: gnunet/src/fs/gnunet-search.c
===================================================================
--- gnunet/src/fs/gnunet-search.c       2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/gnunet-search.c       2016-04-09 23:14:03 UTC (rev 37005)
@@ -96,7 +96,7 @@
 
 
 static void
-clean_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+clean_task (void *cls)
 {
   size_t dsize;
   void *ddata;
@@ -210,7 +210,7 @@
 
 
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (sc != NULL)
   {

Modified: gnunet/src/fs/gnunet-service-fs.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/gnunet-service-fs.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -184,11 +184,9 @@
  * Task that periodically ages our cover traffic statistics.
  *
  * @param cls unused closure
- * @param tc task context
  */
 static void
-age_cover_counters (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+age_cover_counters (void *cls)
 {
   GSF_cover_content_count = (GSF_cover_content_count * 15) / 16;
   GSF_cover_query_count = (GSF_cover_query_count * 15) / 16;
@@ -531,11 +529,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GSF_cadet_stop_client ();
   GSF_cadet_stop_server ();
@@ -821,7 +817,7 @@
       (GNUNET_OK != main_init (server, cfg)))
   {
     GNUNET_SCHEDULER_shutdown ();
-    shutdown_task (NULL, NULL);
+    shutdown_task (NULL);
     return;
   }
 }

Modified: gnunet/src/fs/gnunet-service-fs_cadet_client.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_cadet_client.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/fs/gnunet-service-fs_cadet_client.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -246,11 +246,9 @@
  * Task called when it is time to destroy an inactive cadet channel.
  *
  * @param cls the `struct CadetHandle` to tear down
- * @param tc scheduler context, unused
  */
 static void
-cadet_timeout (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+cadet_timeout (void *cls)
 {
   struct CadetHandle *mh = cls;
   struct GNUNET_CADET_Channel *tun;
@@ -270,11 +268,9 @@
  * Task called when it is time to reset an cadet.
  *
  * @param cls the `struct CadetHandle` to tear down
- * @param tc scheduler context, unused
  */
 static void
-reset_cadet_task (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+reset_cadet_task (void *cls)
 {
   struct CadetHandle *mh = cls;
 

Modified: gnunet/src/fs/gnunet-service-fs_cadet_server.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_cadet_server.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/fs/gnunet-service-fs_cadet_server.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -154,11 +154,9 @@
  * Task run to asynchronously terminate the cadet due to timeout.
  *
  * @param cls the 'struct CadetClient'
- * @param tc scheduler context
  */
 static void
-timeout_cadet_task (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_cadet_task (void *cls)
 {
   struct CadetClient *sc = cls;
   struct GNUNET_CADET_Channel *tun;
@@ -324,7 +322,7 @@
 static void
 handle_datastore_reply (void *cls,
                        const struct GNUNET_HashCode *key,
-                       size_t size, 
+                       size_t size,
                        const void *data,
                        enum GNUNET_BLOCK_Type type,
                        uint32_t priority,

Modified: gnunet/src/fs/gnunet-service-fs_cp.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_cp.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/gnunet-service-fs_cp.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -522,11 +522,9 @@
  * (re)try to reserve bandwidth from the given peer.
  *
  * @param cls the `struct GSF_ConnectedPeer` to reserve from
- * @param tc scheduler context
  */
 static void
-retry_reservation (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc)
+retry_reservation (void *cls)
 {
   struct GSF_ConnectedPeer *cp = cls;
   struct GNUNET_PeerIdentity target;
@@ -675,11 +673,9 @@
  * peer.  Check, and if so, restart migration.
  *
  * @param cls the `struct GSF_ConnectedPeer`
- * @param tc scheduler context
  */
 static void
-revive_migration (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+revive_migration (void *cls)
 {
   struct GSF_ConnectedPeer *cp = cls;
   struct GNUNET_TIME_Relative bt;
@@ -854,11 +850,9 @@
  * Free the given request.
  *
  * @param cls the request to free
- * @param tc task context
  */
 static void
-peer_request_destroy (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc)
+peer_request_destroy (void *cls)
 {
   struct PeerRequest *peerreq = cls;
   struct GSF_PendingRequest *pr = peerreq->pr;
@@ -876,19 +870,19 @@
  * The artificial delay is over, transmit the message now.
  *
  * @param cls the `struct GSF_DelayedHandle` with the message
- * @param tc scheduler context
  */
 static void
-transmit_delayed_now (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc)
+transmit_delayed_now (void *cls)
 {
   struct GSF_DelayedHandle *dh = cls;
   struct GSF_ConnectedPeer *cp = dh->cp;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   GNUNET_CONTAINER_DLL_remove (cp->delayed_head,
                                cp->delayed_tail,
                                dh);
   cp->delay_queue_size--;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
   {
     GNUNET_free (dh->pm);
@@ -1490,11 +1484,9 @@
  * a transmission request.
  *
  * @param cls the `struct GSF_PeerTransmitHandle` of the request
- * @param tc scheduler context
  */
 static void
-peer_transmit_timeout (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+peer_transmit_timeout (void *cls)
 {
   struct GSF_PeerTransmitHandle *pth = cls;
   struct GSF_ConnectedPeer *cp;
@@ -1981,18 +1973,17 @@
  * Call this method periodically to flush respect information to disk.
  *
  * @param cls closure, not used
- * @param tc task context, not used
  */
 static void
-cron_flush_respect (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+cron_flush_respect (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   if (NULL == cp_map)
     return;
   GNUNET_CONTAINER_multipeermap_iterate (cp_map,
                                          &flush_respect, NULL);
-  if (NULL == tc)
-    return;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_SCHEDULER_add_delayed_with_priority (RESPECT_FLUSH_FREQ,
@@ -2038,8 +2029,10 @@
 void
 GSF_connected_peer_done_ ()
 {
-  cron_flush_respect (NULL, NULL);
   GNUNET_CONTAINER_multipeermap_iterate (cp_map,
+                                         &flush_respect,
+                                         NULL);
+  GNUNET_CONTAINER_multipeermap_iterate (cp_map,
                                          &clean_peer, NULL);
   GNUNET_CONTAINER_multipeermap_destroy (cp_map);
   cp_map = NULL;

Modified: gnunet/src/fs/gnunet-service-fs_lc.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_lc.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/gnunet-service-fs_lc.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -184,11 +184,9 @@
  * Free the given client request.
  *
  * @param cls the client request to free
- * @param tc task context
  */
 static void
-client_request_destroy (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+client_request_destroy (void *cls)
 {
   struct ClientRequest *cr = cls;
   struct GSF_LocalClient *lc;
@@ -510,7 +508,7 @@
   {
     if (NULL != cr->kill_task)
       GNUNET_SCHEDULER_cancel (cr->kill_task);
-    client_request_destroy (cr, NULL);
+    client_request_destroy (cr);
   }
   while (NULL != (res = pos->res_head))
   {

Modified: gnunet/src/fs/gnunet-service-fs_pe.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_pe.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/gnunet-service-fs_pe.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -244,11 +244,9 @@
  * Figure out when and how to transmit to the given peer.
  *
  * @param cls the `struct GSF_ConnectedPeer` for transmission
- * @param tc scheduler context
  */
 static void
-schedule_peer_transmission (void *cls,
-                            const struct GNUNET_SCHEDULER_TaskContext *tc);
+schedule_peer_transmission (void *cls);
 
 
 /**
@@ -457,11 +455,9 @@
  * Figure out when and how to transmit to the given peer.
  *
  * @param cls the `struct PeerPlan`
- * @param tc scheduler context
  */
 static void
-schedule_peer_transmission (void *cls,
-                            const struct GNUNET_SCHEDULER_TaskContext *tc)
+schedule_peer_transmission (void *cls)
 {
   struct PeerPlan *pp = cls;
   struct GSF_RequestPlan *rp;

Modified: gnunet/src/fs/gnunet-service-fs_pr.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_pr.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/gnunet-service-fs_pr.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -1300,11 +1300,9 @@
  * Task that issues a warning if the datastore lookup takes too long.
  *
  * @param cls the `struct GSF_PendingRequest`
- * @param tc task context
  */
 static void
-warn_delay_task (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+warn_delay_task (void *cls)
 {
   struct GSF_PendingRequest *pr = cls;
 
@@ -1323,11 +1321,9 @@
  * Task that issues a warning if the datastore lookup takes too long.
  *
  * @param cls the `struct GSF_PendingRequest`
- * @param tc task context
  */
 static void
-odc_warn_delay_task (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+odc_warn_delay_task (void *cls)
 {
   struct GSF_PendingRequest *pr = cls;
 

Modified: gnunet/src/fs/gnunet-service-fs_push.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_push.c      2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/gnunet-service-fs_push.c      2016-04-09 23:14:03 UTC (rev 
37005)
@@ -432,11 +432,9 @@
  * migration
  *
  * @param cls unused
- * @param tc scheduler context (also unused)
  */
 static void
-gather_migration_blocks (void *cls,
-                         const struct GNUNET_SCHEDULER_TaskContext *tc);
+gather_migration_blocks (void *cls);
 
 
 /**
@@ -569,11 +567,9 @@
  * migration
  *
  * @param cls unused
- * @param tc scheduler context (also unused)
  */
 static void
-gather_migration_blocks (void *cls,
-                         const struct GNUNET_SCHEDULER_TaskContext *tc)
+gather_migration_blocks (void *cls)
 {
   mig_task = NULL;
   if (mig_size >= MAX_MIGRATION_QUEUE)

Modified: gnunet/src/fs/gnunet-service-fs_put.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_put.c       2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/gnunet-service-fs_put.c       2016-04-09 23:14:03 UTC (rev 
37005)
@@ -95,8 +95,7 @@
  * @param tc scheduler context (unused)
  */
 static void
-gather_dht_put_blocks (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc);
+gather_dht_put_blocks (void *cls);
 
 
 /**
@@ -151,10 +150,9 @@
  * Task that is run periodically to obtain blocks for DHT PUTs.
  *
  * @param cls type of blocks to gather
- * @param tc scheduler context
  */
 static void
-delay_dht_put_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+delay_dht_put_task (void *cls)
 {
   struct PutOperator *po = cls;
 
@@ -212,14 +210,15 @@
  * Task that is run periodically to obtain blocks for DHT PUTs.
  *
  * @param cls type of blocks to gather
- * @param tc scheduler context (unused)
  */
 static void
-gather_dht_put_blocks (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+gather_dht_put_blocks (void *cls)
 {
   struct PutOperator *po = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   po->dht_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   po->dht_qe =

Modified: gnunet/src/fs/gnunet-unindex.c
===================================================================
--- gnunet/src/fs/gnunet-unindex.c      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/gnunet-unindex.c      2016-04-09 23:14:03 UTC (rev 37005)
@@ -40,7 +40,7 @@
 
 
 static void
-cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_task (void *cls)
 {
   GNUNET_FS_stop (ctx);
   ctx = NULL;
@@ -48,7 +48,7 @@
 
 
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct GNUNET_FS_UnindexContext *u;
 

Modified: gnunet/src/fs/perf_gnunet_service_fs_p2p.c
===================================================================
--- gnunet/src/fs/perf_gnunet_service_fs_p2p.c  2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/perf_gnunet_service_fs_p2p.c  2016-04-09 23:14:03 UTC (rev 
37005)
@@ -238,8 +238,7 @@
 
 
 static void
-do_report (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_report (void *cls)
 {
   char *fn = cls;
   struct GNUNET_TIME_Relative del;

Modified: gnunet/src/fs/perf_gnunet_service_fs_p2p_respect.c
===================================================================
--- gnunet/src/fs/perf_gnunet_service_fs_p2p_respect.c  2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/fs/perf_gnunet_service_fs_p2p_respect.c  2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -279,7 +279,7 @@
 
 
 static void
-do_report (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_report (void *cls)
 {
   static int download_counter;
   const char *type = cls;

Modified: gnunet/src/fs/test_fs_download.c
===================================================================
--- gnunet/src/fs/test_fs_download.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/test_fs_download.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -67,7 +67,7 @@
 
 
 static void
-timeout_kill_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_kill_task (void *cls)
 {
   if (NULL != download)
   {
@@ -86,7 +86,7 @@
 
 
 static void
-abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_publish_task (void *cls)
 {
   if (NULL != publish)
   {
@@ -97,7 +97,7 @@
 
 
 static void
-stop_fs_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+stop_fs_task (void *cls)
 {
   GNUNET_FS_stop (fs);
   fs = NULL;
@@ -105,7 +105,7 @@
 
 
 static void
-abort_download_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_download_task (void *cls)
 {
   uint64_t size;
 

Modified: gnunet/src/fs/test_fs_download_persistence.c
===================================================================
--- gnunet/src/fs/test_fs_download_persistence.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/fs/test_fs_download_persistence.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -62,7 +62,7 @@
 
 
 static void
-timeout_kill_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_kill_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Timeout downloading file\n");
   if (download != NULL)
@@ -81,7 +81,7 @@
 
 
 static void
-abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_publish_task (void *cls)
 {
   if (publish != NULL)
   {
@@ -92,7 +92,7 @@
 
 
 static void
-abort_download_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_download_task (void *cls)
 {
   uint64_t size;
 
@@ -116,7 +116,7 @@
 
 
 static void
-restart_fs_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+restart_fs_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Restarting FS.\n");
   GNUNET_FS_stop (fs);

Modified: gnunet/src/fs/test_fs_list_indexed.c
===================================================================
--- gnunet/src/fs/test_fs_list_indexed.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/test_fs_list_indexed.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -62,7 +62,7 @@
 
 
 static void
-abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_publish_task (void *cls)
 {
   GNUNET_FS_publish_stop (publish);
   publish = NULL;
@@ -76,8 +76,7 @@
 
 
 static void
-list_indexed_task (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc)
+list_indexed_task (void *cls)
 {
   GNUNET_SCHEDULER_add_now (&abort_publish_task, NULL);
 }

Modified: gnunet/src/fs/test_fs_namespace.c
===================================================================
--- gnunet/src/fs/test_fs_namespace.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/test_fs_namespace.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -49,7 +49,7 @@
 
 
 static void
-abort_ksk_search_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+abort_ksk_search_task (void *cls)
 {
   if (ksk_search != NULL)
   {
@@ -66,7 +66,7 @@
 
 
 static void
-abort_sks_search_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+abort_sks_search_task (void *cls)
 {
   if (sks_search == NULL)
     return;
@@ -82,13 +82,13 @@
 
 
 static void
-do_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_timeout (void *cls)
 {
   err = 1;
   FPRINTF (stderr, "%s",  "Operation timed out\n");
   kill_task = NULL;
-  abort_sks_search_task (NULL, tc);
-  abort_ksk_search_task (NULL, tc);
+  abort_sks_search_task (NULL);
+  abort_ksk_search_task (NULL);
 }
 
 

Modified: gnunet/src/fs/test_fs_publish.c
===================================================================
--- gnunet/src/fs/test_fs_publish.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/test_fs_publish.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -58,7 +58,7 @@
 
 
 static void
-abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_publish_task (void *cls)
 {
   GNUNET_FS_publish_stop (publish);
   publish = NULL;

Modified: gnunet/src/fs/test_fs_publish_persistence.c
===================================================================
--- gnunet/src/fs/test_fs_publish_persistence.c 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/test_fs_publish_persistence.c 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -60,11 +60,11 @@
 
 static int err;
 
-static struct GNUNET_SCHEDULER_Task * rtask;
+static struct GNUNET_SCHEDULER_Task *rtask;
 
 
 static void
-abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_publish_task (void *cls)
 {
   GNUNET_FS_publish_stop (publish);
   publish = NULL;
@@ -89,7 +89,7 @@
 
 
 static void
-restart_fs_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+restart_fs_task (void *cls)
 {
   rtask = NULL;
   GNUNET_FS_stop (fs);

Modified: gnunet/src/fs/test_fs_search.c
===================================================================
--- gnunet/src/fs/test_fs_search.c      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/test_fs_search.c      2016-04-09 23:14:03 UTC (rev 37005)
@@ -58,7 +58,7 @@
 
 
 static void
-abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_publish_task (void *cls)
 {
   if (NULL != publish)
   {
@@ -74,7 +74,7 @@
 
 
 static void
-abort_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_error (void *cls)
 {
   fprintf (stderr,
           "Timeout\n");
@@ -94,7 +94,7 @@
 
 
 static void
-abort_search_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_search_task (void *cls)
 {
   if (NULL != search)
   {

Modified: gnunet/src/fs/test_fs_search_persistence.c
===================================================================
--- gnunet/src/fs/test_fs_search_persistence.c  2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/test_fs_search_persistence.c  2016-04-09 23:14:03 UTC (rev 
37005)
@@ -60,7 +60,7 @@
 
 
 static void
-abort_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_error (void *cls)
 {
   timeout_task = NULL;
   fprintf (stderr,
@@ -78,8 +78,9 @@
   err = 1;
 }
 
+
 static void
-abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_publish_task (void *cls)
 {
   if (NULL != publish)
   {
@@ -95,7 +96,7 @@
 
 
 static void
-abort_search_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_search_task (void *cls)
 {
   if (NULL != search)
   {
@@ -110,7 +111,7 @@
 
 
 static void
-restart_fs_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+restart_fs_task (void *cls)
 {
   GNUNET_FS_stop (fs);
   fs = GNUNET_FS_start (cfg, "test-fs-search-persistence", &progress_cb, NULL,

Modified: gnunet/src/fs/test_fs_search_probes.c
===================================================================
--- gnunet/src/fs/test_fs_search_probes.c       2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/test_fs_search_probes.c       2016-04-09 23:14:03 UTC (rev 
37005)
@@ -59,7 +59,7 @@
 
 
 static void
-abort_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_error (void *cls)
 {
   timeout_task = NULL;
   fprintf (stderr,
@@ -79,7 +79,7 @@
 
 
 static void
-abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_publish_task (void *cls)
 {
   if (NULL != publish)
   {
@@ -95,7 +95,7 @@
 
 
 static void
-abort_search_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_search_task (void *cls)
 {
   if (search != NULL)
     GNUNET_FS_search_stop (search);

Modified: gnunet/src/fs/test_fs_search_with_and.c
===================================================================
--- gnunet/src/fs/test_fs_search_with_and.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/test_fs_search_with_and.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -66,7 +66,7 @@
 
 
 static void
-abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_publish_task (void *cls)
 {
   if (NULL != publish)
   {
@@ -82,7 +82,7 @@
 
 
 static void
-abort_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_error (void *cls)
 {
   fprintf (stderr,
           "Timeout\n");
@@ -102,7 +102,7 @@
 
 
 static void
-abort_search_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_search_task (void *cls)
 {
   if (NULL != search)
   {

Modified: gnunet/src/fs/test_fs_test_lib.c
===================================================================
--- gnunet/src/fs/test_fs_test_lib.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/test_fs_test_lib.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -50,8 +50,7 @@
 
 
 static void
-do_stop (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_stop (void *cls)
 {
   char *fn = cls;
 

Modified: gnunet/src/fs/test_fs_unindex.c
===================================================================
--- gnunet/src/fs/test_fs_unindex.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/fs/test_fs_unindex.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -57,7 +57,7 @@
 
 
 static void
-abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_publish_task (void *cls)
 {
   GNUNET_FS_publish_stop (publish);
   publish = NULL;
@@ -65,7 +65,7 @@
 
 
 static void
-abort_unindex_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_unindex_task (void *cls)
 {
   GNUNET_FS_unindex_stop (unindex);
   unindex = NULL;

Modified: gnunet/src/fs/test_fs_unindex_persistence.c
===================================================================
--- gnunet/src/fs/test_fs_unindex_persistence.c 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/test_fs_unindex_persistence.c 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -58,7 +58,7 @@
 
 
 static void
-abort_publish_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_publish_task (void *cls)
 {
   GNUNET_FS_publish_stop (publish);
   publish = NULL;
@@ -66,7 +66,7 @@
 
 
 static void
-abort_unindex_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+abort_unindex_task (void *cls)
 {
   if (unindex != NULL)
   {
@@ -87,7 +87,7 @@
 
 
 static void
-restart_fs_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+restart_fs_task (void *cls)
 {
   GNUNET_FS_stop (fs);
   fs = GNUNET_FS_start (cfg, "test-fs-unindex-persistence", &progress_cb, NULL,

Modified: gnunet/src/fs/test_gnunet_service_fs_migration.c
===================================================================
--- gnunet/src/fs/test_gnunet_service_fs_migration.c    2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/fs/test_gnunet_service_fs_migration.c    2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -64,8 +64,7 @@
 
 
 static void
-do_stop (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_stop (void *cls)
 {
   struct GNUNET_TIME_Relative del;
   char *fancy;
@@ -140,11 +139,12 @@
 
 
 static void
-stop_source_peer (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+stop_source_peer (void *cls)
 {
   struct DownloadContext *dc = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   /* Do not interact with testbed when shutting down */
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;

Modified: gnunet/src/fs/test_gnunet_service_fs_p2p.c
===================================================================
--- gnunet/src/fs/test_gnunet_service_fs_p2p.c  2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/fs/test_gnunet_service_fs_p2p.c  2016-04-09 23:14:03 UTC (rev 
37005)
@@ -54,7 +54,7 @@
 
 
 static void
-do_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_stop (void *cls)
 {
   char *fn = cls;
   struct GNUNET_TIME_Relative del;

Modified: gnunet/src/gns/gns_api.c
===================================================================
--- gnunet/src/gns/gns_api.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/gns/gns_api.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -203,10 +203,9 @@
  * Reconnect to GNS
  *
  * @param cls the handle
- * @param tc task context
  */
 static void
-reconnect_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_task (void *cls)
 {
   struct GNUNET_GNS_Handle *handle = cls;
 

Modified: gnunet/src/gns/gnunet-bcd.c
===================================================================
--- gnunet/src/gns/gnunet-bcd.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/gns/gnunet-bcd.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -287,11 +287,13 @@
  * and schedule the next run.
  */
 static void
-run_daemon (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_daemon (void *cls)
 {
   struct MHD_Daemon *daemon_handle = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   http_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_assert (MHD_YES == MHD_run (daemon_handle));
@@ -384,8 +386,7 @@
  * Stop HTTP server.
  */
 static void
-server_stop (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+server_stop (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "HTTP server shutdown\n");

Modified: gnunet/src/gns/gnunet-dns2gns.c
===================================================================
--- gnunet/src/gns/gnunet-dns2gns.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/gns/gnunet-dns2gns.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -170,11 +170,9 @@
  * Task run on shutdown.  Cleans up everything.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-do_shutdown (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != t4)
     GNUNET_SCHEDULER_cancel (t4);
@@ -252,12 +250,10 @@
 /**
  * Task run on timeout.  Cleans up request.
  *
- * @param cls 'struct Request' of the request to clean up
- * @param tc scheduler context
+ * @param cls `struct Request *` of the request to clean up
  */
 static void
-do_timeout (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_timeout (void *cls)
 {
   struct Request *request = cls;
 
@@ -507,15 +503,14 @@
  * Task to read IPv4 DNS packets.
  *
  * @param cls the 'listen_socket4'
- * @param tc scheduler context
  */
 static void
-read_dns4 (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+read_dns4 (void *cls)
 {
   struct sockaddr_in v4;
   socklen_t addrlen;
   ssize_t size;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   GNUNET_assert (listen_socket4 == cls);
   t4 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
@@ -522,6 +517,7 @@
                                      listen_socket4,
                                      &read_dns4,
                                      listen_socket4);
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 == (GNUNET_SCHEDULER_REASON_READ_READY & tc->reason))
     return; /* shutdown? */
   size = GNUNET_NETWORK_socket_recvfrom_amount (listen_socket4);
@@ -550,15 +546,14 @@
  * Task to read IPv6 DNS packets.
  *
  * @param cls the 'listen_socket6'
- * @param tc scheduler context
  */
 static void
-read_dns6 (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+read_dns6 (void *cls)
 {
   struct sockaddr_in6 v6;
   socklen_t addrlen;
   ssize_t size;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   GNUNET_assert (listen_socket6 == cls);
   t6 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
@@ -565,6 +560,7 @@
                                      listen_socket6,
                                      &read_dns6,
                                      listen_socket6);
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 == (GNUNET_SCHEDULER_REASON_READ_READY & tc->reason))
     return; /* shutdown? */
   size = GNUNET_NETWORK_socket_recvfrom_amount (listen_socket6);

Modified: gnunet/src/gns/gnunet-gns-helper-service-w32.c
===================================================================
--- gnunet/src/gns/gnunet-gns-helper-service-w32.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/gns/gnunet-gns-helper-service-w32.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -112,11 +112,9 @@
  * Task run on shutdown.  Cleans up everything.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-do_shutdown (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   struct request *rq;
   if (NULL != id_op)

Modified: gnunet/src/gns/gnunet-gns-import.c
===================================================================
--- gnunet/src/gns/gnunet-gns-import.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/gns/gnunet-gns-import.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -344,11 +344,9 @@
  * Task run on shutdown.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_free_non_null (master_zone_pkey);
   master_zone_pkey = NULL;

Modified: gnunet/src/gns/gnunet-gns-proxy.c
===================================================================
--- gnunet/src/gns/gnunet-gns-proxy.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/gns/gnunet-gns-proxy.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -1257,10 +1257,9 @@
  * from curl
  *
  * @param cls closure
- * @param tc task context
  */
 static void
-curl_task_download (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+curl_task_download (void *cls);
 
 
 /**
@@ -1328,11 +1327,9 @@
  * Task that is run when we are ready to receive more data from curl.
  *
  * @param cls closure, NULL
- * @param tc task context
  */
 static void
-curl_task_download (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc)
+curl_task_download (void *cls)
 {
   int running;
   int msgnum;
@@ -1821,11 +1818,9 @@
  * Task run whenever HTTP server is idle for too long. Kill it.
  *
  * @param cls the `struct MhdHttpList *`
- * @param tc sched context
  */
 static void
-kill_httpd_task (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+kill_httpd_task (void *cls)
 {
   struct MhdHttpList *hd = cls;
 
@@ -1838,11 +1833,9 @@
  * Task run whenever HTTP server operations are pending.
  *
  * @param cls the `struct MhdHttpList *` of the daemon that is being run
- * @param tc sched context
  */
 static void
-do_httpd (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc);
+do_httpd (void *cls);
 
 
 /**
@@ -1920,11 +1913,9 @@
  * Task run whenever HTTP server operations are pending.
  *
  * @param cls the `struct MhdHttpList` of the daemon that is being run
- * @param tc scheduler context
  */
 static void
-do_httpd (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_httpd (void *cls)
 {
   struct MhdHttpList *hd = cls;
 
@@ -2171,11 +2162,9 @@
  * the SOCKS5 handshake).  Clean up.
  *
  * @param cls the `struct Socks5Request *`
- * @param tc sched context
  */
 static void
-timeout_s5r_handshake (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_s5r_handshake (void *cls)
 {
   struct Socks5Request *s5r = cls;
 
@@ -2245,11 +2234,9 @@
  * Write data from buffer to socks5 client, then continue with state machine.
  *
  * @param cls the closure with the `struct Socks5Request`
- * @param tc scheduler context
  */
 static void
-do_write (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_write (void *cls)
 {
   struct Socks5Request *s5r = cls;
   ssize_t len;
@@ -2502,11 +2489,9 @@
  * Read data from incoming Socks5 connection
  *
  * @param cls the closure with the `struct Socks5Request`
- * @param tc the scheduler context
  */
 static void
-do_s5r_read (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_s5r_read (void *cls)
 {
   struct Socks5Request *s5r = cls;
   const struct Socks5ClientHelloMessage *c_hello;
@@ -2514,8 +2499,10 @@
   const struct Socks5ClientRequestMessage *c_req;
   ssize_t rlen;
   size_t alen;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   s5r->rtask = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ( (NULL != tc->read_ready) &&
        (GNUNET_NETWORK_fdset_isset (tc->read_ready, s5r->sock)) )
   {
@@ -2721,17 +2708,18 @@
  * @param tc the scheduler context
  */
 static void
-do_accept (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_accept (void *cls)
 {
   struct GNUNET_NETWORK_Handle *lsock = cls;
   struct GNUNET_NETWORK_Handle *s;
   struct Socks5Request *s5r;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   if (lsock == lsock4)
     ltask4 = NULL;
   else
     ltask6 = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   if (lsock == lsock4)
@@ -2769,11 +2757,9 @@
  * Task run on shutdown
  *
  * @param cls closure
- * @param tc task context
  */
 static void
-do_shutdown (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Shutting down...\n");

Modified: gnunet/src/gns/gnunet-gns.c
===================================================================
--- gnunet/src/gns/gnunet-gns.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/gns/gnunet-gns.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -105,11 +105,9 @@
  * Task run on shutdown.  Cleans up everything.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-do_shutdown (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != el)
   {

Modified: gnunet/src/gns/gnunet-service-gns.c
===================================================================
--- gnunet/src/gns/gnunet-service-gns.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/gns/gnunet-service-gns.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -260,8 +260,7 @@
  * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct ClientLookupHandle *clh;
   struct MonitorActivity *ma;
@@ -349,11 +348,9 @@
  * Method called periodically that triggers iteration over authoritative 
records
  *
  * @param cls closure
- * @param tc task context
  */
 static void
-publish_zone_dht_next (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+publish_zone_dht_next (void *cls)
 {
   zone_publish_task = NULL;
   GNUNET_NAMESTORE_zone_iterator_next (namestore_iter);
@@ -364,11 +361,9 @@
  * Periodically iterate over our zone and store everything in dht
  *
  * @param cls NULL
- * @param tc task context
  */
 static void
-publish_zone_dht_start (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc);
+publish_zone_dht_start (void *cls);
 
 
 /**
@@ -629,11 +624,9 @@
  * Periodically iterate over all zones and store everything in DHT
  *
  * @param cls NULL
- * @param tc task context
  */
 static void
-publish_zone_dht_start (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+publish_zone_dht_start (void *cls)
 {
   zone_publish_task = NULL;
 

Modified: gnunet/src/gns/gnunet-service-gns_resolver.c
===================================================================
--- gnunet/src/gns/gnunet-service-gns_resolver.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/gns/gnunet-service-gns_resolver.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -541,11 +541,9 @@
  * Task scheduled to asynchronously fail a resolution.
  *
  * @param cls the 'struct GNS_ResolverHandle' of the resolution to fail
- * @param tc task context
  */
 static void
-fail_resolution (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+fail_resolution (void *cls)
 {
   struct GNS_ResolverHandle *rh = cls;
 
@@ -808,8 +806,7 @@
  * @param tc task context
  */
 static void
-recursive_resolution (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc);
+recursive_resolution (void *cls);
 
 
 /**
@@ -2229,11 +2226,9 @@
  * Task scheduled to continue with the resolution process.
  *
  * @param cls the `struct GNS_ResolverHandle` of the resolution
- * @param tc task context
  */
 static void
-recursive_resolution (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+recursive_resolution (void *cls)
 {
   struct GNS_ResolverHandle *rh = cls;
 

Modified: gnunet/src/gns/plugin_rest_gns.c
===================================================================
--- gnunet/src/gns/plugin_rest_gns.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/gns/plugin_rest_gns.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -211,11 +211,12 @@
  * @param tc scheduler context
  */
 static void
-do_error (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_error (void *cls)
 {
   struct LookupHandle *handle = cls;
-  struct MHD_Response *resp = GNUNET_REST_create_json_response (NULL);
+  struct MHD_Response *resp;
+
+  resp = GNUNET_REST_create_json_response (NULL);
   handle->proc (handle->proc_cls, resp, MHD_HTTP_BAD_REQUEST);
   cleanup_handle (handle);
 }
@@ -550,7 +551,7 @@
        GNUNET_CONTAINER_multihashmap_contains (conndata_handle->url_param_map,
                                                &key) )
   {
-    handle->type = GNUNET_GNSRECORD_typename_to_number 
+    handle->type = GNUNET_GNSRECORD_typename_to_number
       (GNUNET_CONTAINER_multihashmap_get (conndata_handle->url_param_map,
                                           &key));
   }

Modified: gnunet/src/gns/test_gns_proxy.c
===================================================================
--- gnunet/src/gns/test_gns_proxy.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/gns/test_gns_proxy.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -165,8 +165,7 @@
 
 
 static void
-curl_task (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc)
+curl_task (void *cls)
 {
   curl_task_id = NULL;
   curl_main ();
@@ -247,7 +246,7 @@
 }
 
 static void
-start_curl (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+start_curl (void *cls)
 {
   GNUNET_asprintf (&url,
                   "http://%s:%d/hello_world";,
@@ -269,12 +268,14 @@
   curl_main ();
 }
 
+
 static void
-disco_ns (void* cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+disco_ns (void* cls)
 {
   GNUNET_NAMESTORE_disconnect (namestore);
 }
 
+
 /**
  * Callback invoked from the namestore service once record is
  * created.
@@ -315,8 +316,7 @@
 
 
 static void
-mhd_task (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc)
+mhd_task (void *cls)
 {
   mhd_task_id = NULL;
   MHD_run (mhd);

Modified: gnunet/src/hostlist/gnunet-daemon-hostlist.c
===================================================================
--- gnunet/src/hostlist/gnunet-daemon-hostlist.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/hostlist/gnunet-daemon-hostlist.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -212,11 +212,9 @@
  * the other services.
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-cleaning_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleaning_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "Hostlist daemon is shutting down\n");

Modified: gnunet/src/hostlist/gnunet-daemon-hostlist_client.c
===================================================================
--- gnunet/src/hostlist/gnunet-daemon-hostlist_client.c 2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/hostlist/gnunet-daemon-hostlist_client.c 2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -774,8 +774,7 @@
  * @param tc task context, unused
  */
 static void
-task_download (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc);
+task_download (void *cls);
 
 
 /**
@@ -841,17 +840,17 @@
  * server.
  *
  * @param cls closure, unused
- * @param tc task context, unused
  */
 static void
-task_download (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+task_download (void *cls)
 {
   int running;
   struct CURLMsg *msg;
   CURLMcode mret;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   ti_download = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -1046,10 +1045,12 @@
 
 
 static void
-task_download_dispatcher (void *cls,
-                          const struct GNUNET_SCHEDULER_TaskContext *tc)
+task_download_dispatcher (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   ti_download_dispatcher_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Download is initiated...\n");
@@ -1075,12 +1076,14 @@
  * this task again for a later time.
  */
 static void
-task_check (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task_check (void *cls)
 {
   static int once;
   struct GNUNET_TIME_Relative delay;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   ti_check_download = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   if (stats == NULL)
@@ -1125,13 +1128,14 @@
  * This tasks sets hostlist testing to allowed after intervall between to 
testings is reached
  *
  * @param cls closure
- * @param tc TaskContext
  */
 static void
-task_testing_intervall_reset (void *cls,
-                              const struct GNUNET_SCHEDULER_TaskContext *tc)
+task_testing_intervall_reset (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   ti_testing_intervall_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   stat_testing_allowed = GNUNET_OK;
@@ -1144,12 +1148,14 @@
  * Task that writes hostlist entries to a file on a regular base
  *
  * @param cls closure
- * @param tc TaskContext
  */
 static void
-task_hostlist_saving (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task_hostlist_saving (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   ti_saving_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   save_hostlist_file (GNUNET_NO);

Modified: gnunet/src/hostlist/gnunet-daemon-hostlist_server.c
===================================================================
--- gnunet/src/hostlist/gnunet-daemon-hostlist_server.c 2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/hostlist/gnunet-daemon-hostlist_server.c 2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -627,19 +627,18 @@
  * and schedule the next run.
  *
  * @param cls the `struct MHD_Daemon` of the HTTP server to run
- * @param tc scheduler context
  */
 static void
-run_daemon (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_daemon (void *cls)
 {
   struct MHD_Daemon *daemon_handle = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   if (daemon_handle == daemon_handle_v4)
     hostlist_task_v4 = NULL;
   else
     hostlist_task_v6 = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_assert (MHD_YES == MHD_run (daemon_handle));

Modified: gnunet/src/hostlist/test_gnunet_daemon_hostlist.c
===================================================================
--- gnunet/src/hostlist/test_gnunet_daemon_hostlist.c   2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/hostlist/test_gnunet_daemon_hostlist.c   2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -52,7 +52,7 @@
 
 
 static void
-clean_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+clean_up (void *cls)
 {
   if (p1.th != NULL)
   {
@@ -81,12 +81,12 @@
  * Timeout, give up.
  */
 static void
-timeout_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_error (void *cls)
 {
   timeout_task = NULL;
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
               "Timeout trying to connect peers, test failed.\n");
-  clean_up (NULL, tc);
+  clean_up (NULL);
 }
 
 
@@ -150,7 +150,7 @@
 
 
 static void
-waitpid_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+waitpid_task (void *cls)
 {
   struct PeerContext *p = cls;
 
@@ -179,7 +179,7 @@
  * Try again to connect to transport service.
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   stop_arm (&p1);
   stop_arm (&p2);

Modified: gnunet/src/hostlist/test_gnunet_daemon_hostlist_learning.c
===================================================================
--- gnunet/src/hostlist/test_gnunet_daemon_hostlist_learning.c  2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/hostlist/test_gnunet_daemon_hostlist_learning.c  2016-04-09 
23:14:03 UTC (rev 37005)
@@ -166,7 +166,7 @@
  * Timeout, give up.
  */
 static void
-timeout_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_error (void *cls)
 {
   timeout_task = NULL;
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -184,8 +184,7 @@
 
 
 static void
-do_shutdown (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   shutdown_testcase ();
 }
@@ -265,11 +264,13 @@
  * Check the server statistics regularly
  */
 static void
-check_statistics (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+check_statistics (void *cls)
 {
   char *stat;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   check_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_asprintf (&stat, gettext_noop ("# advertised URI `%s' downloaded"),

Modified: gnunet/src/hostlist/test_gnunet_daemon_hostlist_reconnect.c
===================================================================
--- gnunet/src/hostlist/test_gnunet_daemon_hostlist_reconnect.c 2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/hostlist/test_gnunet_daemon_hostlist_reconnect.c 2016-04-09 
23:14:03 UTC (rev 37005)
@@ -52,7 +52,7 @@
 
 
 static void
-clean_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+clean_up (void *cls)
 {
   if (NULL != p1.ghh)
   {
@@ -81,12 +81,12 @@
  * Timeout, give up.
  */
 static void
-timeout_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_error (void *cls)
 {
   timeout_task = NULL;
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
               "Timeout trying to connect peers, test failed.\n");
-  clean_up (NULL, tc);
+  clean_up (NULL);
 }
 
 
@@ -150,7 +150,7 @@
 
 
 static void
-waitpid_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+waitpid_task (void *cls)
 {
   struct PeerContext *p = cls;
 
@@ -179,7 +179,7 @@
  * Try again to connect to transport service.
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   stop_arm (&p1);
   stop_arm (&p2);

Modified: gnunet/src/identity/gnunet-identity.c
===================================================================
--- gnunet/src/identity/gnunet-identity.c       2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/identity/gnunet-identity.c       2016-04-09 23:14:03 UTC (rev 
37005)
@@ -84,11 +84,9 @@
  * Task run on shutdown.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != set_op)
   {

Modified: gnunet/src/identity/gnunet-service-identity.c
===================================================================
--- gnunet/src/identity/gnunet-service-identity.c       2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/identity/gnunet-service-identity.c       2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -134,10 +134,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct Ego *e;
 

Modified: gnunet/src/identity/identity_api.c
===================================================================
--- gnunet/src/identity/identity_api.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/identity/identity_api.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -195,11 +195,9 @@
  * Try again to connect to the identity service.
  *
  * @param cls handle to the identity service.
- * @param tc scheduler context
  */
 static void
-reconnect (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc);
+reconnect (void *cls);
 
 
 /**
@@ -533,10 +531,9 @@
  * Try again to connect to the identity service.
  *
  * @param cls handle to the identity service.
- * @param tc scheduler context
  */
 static void
-reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect (void *cls)
 {
   struct GNUNET_IDENTITY_Handle *h = cls;
   struct GNUNET_IDENTITY_Operation *op;

Modified: gnunet/src/identity/plugin_rest_identity.c
===================================================================
--- gnunet/src/identity/plugin_rest_identity.c  2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/identity/plugin_rest_identity.c  2016-04-09 23:14:03 UTC (rev 
37005)
@@ -107,12 +107,12 @@
    * DLL
    */
   struct EgoEntry *next;
-  
+
   /**
    * DLL
    */
   struct EgoEntry *prev;
-  
+
   /**
    * Ego Identifier
    */
@@ -122,7 +122,7 @@
    * Public key string
    */
   char *keystring;
-  
+
   /**
    * The Ego
    */
@@ -146,7 +146,7 @@
    * Handle to the rest connection
    */
   struct RestConnectionDataHandle *conndata_handle;
-  
+
   /**
    * The processing state
    */
@@ -170,7 +170,7 @@
   /**
    * ID of a task associated with the resolution process.
    */
-  struct GNUNET_SCHEDULER_Task * timeout_task;    
+  struct GNUNET_SCHEDULER_Task * timeout_task;
 
   /**
    * The plugin result processor
@@ -260,11 +260,9 @@
  * Task run on shutdown.  Cleans up everything.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-do_error (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_error (void *cls)
 {
   struct RequestHandle *handle = cls;
   struct MHD_Response *resp;
@@ -528,7 +526,7 @@
   egoname_json = GNUNET_REST_jsonapi_resource_read_attr (json_res, 
GNUNET_REST_JSONAPI_IDENTITY_NAME);
   if (!json_is_string (egoname_json))
   {
-    GNUNET_REST_jsonapi_object_delete (json_obj); 
+    GNUNET_REST_jsonapi_object_delete (json_obj);
     handle->emsg = GNUNET_strdup ("No name provided");
     GNUNET_SCHEDULER_add_now (&do_error, handle);
     return;
@@ -563,7 +561,7 @@
  * @param url the url that is requested
  * @param cls the RequestHandle
  */
-static void 
+static void
 ego_edit_cont (struct RestConnectionDataHandle *con,
                const char *url,
                void *cls)
@@ -633,7 +631,7 @@
     GNUNET_SCHEDULER_add_now (&do_error, handle);
     return;
   }
-  json_res = GNUNET_REST_jsonapi_object_get_resource (json_obj, 0); 
+  json_res = GNUNET_REST_jsonapi_object_get_resource (json_obj, 0);
 
   if (GNUNET_NO == GNUNET_REST_jsonapi_resource_check_type (json_res, 
GNUNET_REST_JSONAPI_IDENTITY_EGO))
   {
@@ -692,7 +690,7 @@
   GNUNET_SCHEDULER_add_now (&do_error, handle);
 }
 
-void 
+void
 ego_delete_cont (struct RestConnectionDataHandle *con_handle,
                  const char* url,
                  void *cls)
@@ -836,7 +834,7 @@
   if (ID_REST_STATE_INIT == handle->state) {
     ego_entry = GNUNET_new (struct EgoEntry);
     GNUNET_IDENTITY_ego_get_public_key (ego, &pk);
-    ego_entry->keystring = 
+    ego_entry->keystring =
       GNUNET_CRYPTO_ecdsa_public_key_to_string (&pk);
     ego_entry->ego = ego;
     GNUNET_asprintf (&ego_entry->identifier, "%s", identifier);

Modified: gnunet/src/identity/test_identity.c
===================================================================
--- gnunet/src/identity/test_identity.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/identity/test_identity.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -77,10 +77,9 @@
  * Termiante the testcase (failure).
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   cleanup ();
   res = 1;
@@ -91,10 +90,9 @@
  * Termiante the testcase (success).
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-end_normally (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_normally (void *cls)
 {
   cleanup ();
   res = 0;

Modified: gnunet/src/identity/test_identity_defaults.c
===================================================================
--- gnunet/src/identity/test_identity_defaults.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/identity/test_identity_defaults.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -77,10 +77,9 @@
  * Termiante the testcase (failure).
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   cleanup ();
   res = 1;
@@ -91,10 +90,9 @@
  * Termiante the testcase (success).
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-end_normally (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_normally (void *cls)
 {
   cleanup ();
   res = 0;

Modified: gnunet/src/identity-provider/gnunet-service-identity-provider.c
===================================================================
--- gnunet/src/identity-provider/gnunet-service-identity-provider.c     
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/identity-provider/gnunet-service-identity-provider.c     
2016-04-09 23:14:03 UTC (rev 37005)
@@ -182,7 +182,7 @@
    * LookupRequest
    */
   struct GNUNET_GNS_LookupRequest *lookup_request;
-  
+
   /**
    * Audience Key
    */
@@ -324,11 +324,9 @@
  * removes deleted attributes and expiration times.
  *
  * @param cls the ego entry
- * @param tc task context
  */
 static void
-handle_token_update (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+handle_token_update (void *cls)
 {
   char *token_metadata;
   char *write_ptr;
@@ -428,13 +426,13 @@
                       attr->name,
                       attr->val_head->value);
     }
-    else 
+    else
     {
       GNUNET_CRYPTO_hash (attr->name,
                           strlen (attr->name),
                           &key_hash);
       //Check if attr still exists. omit of not
-      if (GNUNET_NO != 
+      if (GNUNET_NO !=
           GNUNET_CONTAINER_multihashmap_contains (ego_entry->attr_map,
                                                   &key_hash))
       {
@@ -497,8 +495,7 @@
 }
 
 static void
-update_identities(void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc);
+update_identities(void *cls);
 
 /**
  *
@@ -568,7 +565,7 @@
     GNUNET_CONTAINER_multihashmap_clear (ego_entry->attr_map);
     update_task = GNUNET_SCHEDULER_add_now (&update_identities,
                                             ego_entry->next);
-    return; 
+    return;
   }
 
   //There should be only a single record for a token under a label
@@ -607,7 +604,7 @@
                 aud_key,
                 &token);
 
-  label = GNUNET_strdup (lbl); 
+  label = GNUNET_strdup (lbl);
   rd_exp = token_record->expiration_time;
 
   GNUNET_SCHEDULER_add_now (&handle_token_update, ego_entry);
@@ -711,12 +708,9 @@
  * dirty, first update the attributes.
  *
  * @param cls the ego to update
- * param tc task context
- *
  */
 static void
-update_identities(void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+update_identities(void *cls)
 {
   struct EgoEntry *next_ego = cls;
   const struct GNUNET_CRYPTO_EcdsaPrivateKey *priv_key;
@@ -866,8 +860,7 @@
  * @param tc task context
  */
 static void
-do_shutdown (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Shutting down...\n");
@@ -882,10 +875,10 @@
 {
   struct GNUNET_IDENTITY_PROVIDER_ExchangeResultMessage *erm;
   uint16_t token_len = strlen (token) + 1;
-  erm = GNUNET_malloc (sizeof (struct 
GNUNET_IDENTITY_PROVIDER_ExchangeResultMessage) 
+  erm = GNUNET_malloc (sizeof (struct 
GNUNET_IDENTITY_PROVIDER_ExchangeResultMessage)
                        + token_len);
   erm->header.type = htons 
(GNUNET_MESSAGE_TYPE_IDENTITY_PROVIDER_EXCHANGE_RESULT);
-  erm->header.size = htons (sizeof (struct 
GNUNET_IDENTITY_PROVIDER_ExchangeResultMessage) 
+  erm->header.size = htons (sizeof (struct 
GNUNET_IDENTITY_PROVIDER_ExchangeResultMessage)
                             + token_len);
   erm->ticket_nonce = htonl (ticket_nonce);
   memcpy (&erm[1], token, token_len);
@@ -901,12 +894,12 @@
   struct GNUNET_IDENTITY_PROVIDER_IssueResultMessage *irm;
   char *tmp_str;
 
-  irm = GNUNET_malloc (sizeof (struct 
GNUNET_IDENTITY_PROVIDER_IssueResultMessage) 
+  irm = GNUNET_malloc (sizeof (struct 
GNUNET_IDENTITY_PROVIDER_IssueResultMessage)
                        + strlen (label) + 1
                        + strlen (ticket) + 1
                        + strlen (token) + 1);
   irm->header.type = htons 
(GNUNET_MESSAGE_TYPE_IDENTITY_PROVIDER_ISSUE_RESULT);
-  irm->header.size = htons (sizeof (struct 
GNUNET_IDENTITY_PROVIDER_IssueResultMessage) 
+  irm->header.size = htons (sizeof (struct 
GNUNET_IDENTITY_PROVIDER_IssueResultMessage)
                             + strlen (label) + 1
                             + strlen (ticket) + 1
                             + strlen (token) + 1);
@@ -957,7 +950,7 @@
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "%s\n",
                 "Error serializing ticket\n");
     cleanup_issue_handle (handle);
-    GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); 
+    GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
     return;
   }
   if (GNUNET_OK != token_to_string (handle->token,
@@ -968,7 +961,7 @@
                 "Error serializing token\n");
     GNUNET_free (ticket_str);
     cleanup_issue_handle (handle);
-    GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); 
+    GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
     return;
   }
   irm = create_issue_result_message (handle->label, ticket_str, token_str);
@@ -983,8 +976,12 @@
   GNUNET_free (token_str);
 }
 
+
 /**
  * Build a GNUid token for identity
+ *
+ * FIXME: doxygen is very wrong here!
+ *
  * @param handle the handle
  * @param ego_entry the ego to build the token for
  * @param name name of the ego
@@ -993,8 +990,7 @@
  * @return identifier string of token (label)
  */
 static void
-sign_and_return_token (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+sign_and_return_token (void *cls)
 {
   struct GNUNET_CRYPTO_EcdsaPublicKey pub_key;
   struct GNUNET_CRYPTO_EcdhePrivateKey *ecdhe_privkey;
@@ -1008,7 +1004,7 @@
   uint64_t exp_time;
   size_t token_metadata_len;
 
-  //Remote nonce 
+  //Remote nonce
   nonce_str = NULL;
   GNUNET_asprintf (&nonce_str, "%lu", handle->nonce);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Request nonce: %s\n", nonce_str);
@@ -1028,7 +1024,7 @@
   token_add_attr_int (handle->token, "exp", exp_time);
   token_add_attr (handle->token, "nonce", nonce_str);
 
-  //Token in a serialized encrypted format 
+  //Token in a serialized encrypted format
   GNUNET_assert (token_serialize (handle->token,
                                   &handle->iss_key,
                                   &ecdhe_privkey,
@@ -1150,7 +1146,7 @@
 static void
 cleanup_exchange_handle (struct ExchangeHandle *handle)
 {
-  if (NULL != handle->ticket) 
+  if (NULL != handle->ticket)
     ticket_destroy (handle->ticket);
   if (NULL != handle->token)
     token_destroy (handle->token);
@@ -1177,7 +1173,7 @@
     return;
   }
 
-  record_str = 
+  record_str =
     GNUNET_GNSRECORD_value_to_string (GNUNET_GNSRECORD_TYPE_ID_TOKEN,
                                       rd->data,
                                       rd->data_size);
@@ -1307,7 +1303,7 @@
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 ">>> No existing token found\n");
     //Label
-    rnd_key = 
+    rnd_key =
       GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_STRONG,
                                 UINT64_MAX);
     GNUNET_STRINGS_base64_encode ((char*)&rnd_key,
@@ -1318,7 +1314,7 @@
                                                            &handle->iss_key,
                                                            &attr_collect,
                                                            handle);
-    return; 
+    return;
   }
 
   //There should be only a single record for a token under a label
@@ -1340,7 +1336,7 @@
     return;
   }
   ecdhe_privkey = *((struct GNUNET_CRYPTO_EcdhePrivateKey 
*)token_metadata_record->data);
-  aud_key = 
+  aud_key =
     (struct GNUNET_CRYPTO_EcdsaPublicKey 
*)(token_metadata_record->data+sizeof(struct GNUNET_CRYPTO_EcdhePrivateKey));
   tmp_scopes = GNUNET_strdup ((char*) aud_key+sizeof (struct 
GNUNET_CRYPTO_EcdsaPublicKey));
 
@@ -1435,12 +1431,11 @@
   }
   im = (const struct GNUNET_IDENTITY_PROVIDER_IssueMessage *) message;
   scopes = (const char *) &im[1];
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Received ISSUE of `%s' from client\n",
-              scope);
   issue_handle = GNUNET_malloc (sizeof (struct IssueHandle));
   issue_handle->attr_map = GNUNET_CONTAINER_multihashmap_create (5,
                                                                  GNUNET_NO);
+  /* FIXME: check that scopes is 0-termianted, Out-of-bounds access
+     possible here!!! */
   scopes_tmp = GNUNET_strdup (scopes);
   scope = strtok(scopes_tmp, ",");
   for (; NULL != scope; scope = strtok (NULL, ","))
@@ -1484,7 +1479,7 @@
  * @param c configuration
  */
 static void
-run (void *cls, 
+run (void *cls,
      struct GNUNET_SERVER_Handle *server,
      const struct GNUNET_CONFIGURATION_Handle *c)
 {
@@ -1519,7 +1514,7 @@
                                              &list_ego,
                                              NULL);
 
-  if (GNUNET_OK == 
+  if (GNUNET_OK ==
       GNUNET_CONFIGURATION_get_value_time (cfg,
                                            "identity-provider",
                                            "TOKEN_EXPIRATION_INTERVAL",

Modified: gnunet/src/identity-provider/identity_provider_api.c
===================================================================
--- gnunet/src/identity-provider/identity_provider_api.c        2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/identity-provider/identity_provider_api.c        2016-04-09 
23:14:03 UTC (rev 37005)
@@ -138,11 +138,9 @@
  * Try again to connect to the service.
  *
  * @param cls handle to the service.
- * @param tc scheduler context
  */
 static void
-reconnect (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc);
+reconnect (void *cls);
 
 
 /**
@@ -233,7 +231,7 @@
       str = NULL;
     }
     label_str = strtok (str, ",");
-    
+
     if (NULL == label_str)
     {
       GNUNET_free (str);
@@ -301,7 +299,7 @@
       op->ex_cb (op->cls, &token, ticket_nonce);
     GNUNET_free (op);
     break;
-  
+
   default:
     GNUNET_break (0);
     reschedule_connect (h);
@@ -397,10 +395,9 @@
  * Try again to connect to the service.
  *
  * @param cls handle to the identity provider service.
- * @param tc scheduler context
  */
 static void
-reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect (void *cls)
 {
   struct GNUNET_IDENTITY_PROVIDER_Handle *h = cls;
 

Modified: gnunet/src/identity-provider/plugin_rest_identity_provider.c
===================================================================
--- gnunet/src/identity-provider/plugin_rest_identity_provider.c        
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/identity-provider/plugin_rest_identity_provider.c        
2016-04-09 23:14:03 UTC (rev 37005)
@@ -150,12 +150,12 @@
    * DLL
    */
   struct EgoEntry *next;
-  
+
   /**
    * DLL
    */
   struct EgoEntry *prev;
-  
+
   /**
    * Ego Identifier
    */
@@ -165,7 +165,7 @@
    * Public key string
    */
   char *keystring;
-  
+
   /**
    * The Ego
    */
@@ -189,7 +189,7 @@
    * Selected ego
    */
   struct EgoEntry *ego_entry;
-  
+
   /**
    * Ptr to current ego private key
    */
@@ -199,7 +199,7 @@
    * Handle to the rest connection
    */
   struct RestConnectionDataHandle *conndata_handle;
-  
+
   /**
    * The processing state
    */
@@ -248,8 +248,8 @@
   /**
    * ID of a task associated with the resolution process.
    */
-  struct GNUNET_SCHEDULER_Task * timeout_task;    
-  
+  struct GNUNET_SCHEDULER_Task * timeout_task;
+
   /**
    * The plugin result processor
    */
@@ -289,7 +289,7 @@
   struct EgoEntry *ego_tmp;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Cleaning up\n");
-  if (NULL != handle->resp_object) 
+  if (NULL != handle->resp_object)
     GNUNET_REST_jsonapi_object_delete (handle->resp_object);
   if (NULL != handle->timeout_task)
     GNUNET_SCHEDULER_cancel (handle->timeout_task);
@@ -324,11 +324,9 @@
  * Task run on shutdown.  Cleans up everything.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-do_error (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_error (void *cls)
 {
   struct RequestHandle *handle = cls;
   struct MHD_Response *resp;
@@ -347,11 +345,9 @@
  * Task run on shutdown.  Cleans up everything.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-do_cleanup_handle_delayed (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_cleanup_handle_delayed (void *cls)
 {
   struct RequestHandle *handle = cls;
   cleanup_handle(handle);
@@ -377,7 +373,7 @@
   char *ticket_str;
   char *token_str;
   char *result_str;
-  
+
   if (NULL == ticket)
   {
     handle->emsg = GNUNET_strdup ("Error in token issue");
@@ -536,7 +532,7 @@
                                  &aud_key,
                                  sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey));
 
-  //Remote nonce 
+  //Remote nonce
   nonce_str = NULL;
   GNUNET_CRYPTO_hash (GNUNET_IDENTITY_TOKEN_REQUEST_NONCE,
                       strlen (GNUNET_IDENTITY_TOKEN_REQUEST_NONCE),
@@ -600,11 +596,9 @@
  * Build a GNUid token for identity
  *
  * @param cls the request handle
- * @param tc task context
  */
 static void
-return_token_list (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc)
+return_token_list (void *cls)
 {
   char* result_str;
   struct RequestHandle *handle = cls;
@@ -784,7 +778,7 @@
   char* token_str;
   char* nonce_str;
   uint64_t expected_nonce;
-  
+
   //Get nonce
   GNUNET_CRYPTO_hash (GNUNET_REST_JSONAPI_IDENTITY_PROVIDER_EXPECTED_NONCE,
                       strlen 
(GNUNET_REST_JSONAPI_IDENTITY_PROVIDER_EXPECTED_NONCE),
@@ -823,7 +817,7 @@
   GNUNET_free (result);
   handle->proc (handle->proc_cls, resp, MHD_HTTP_OK);
   cleanup_handle (handle);
-  json_decref (root); 
+  json_decref (root);
 }
 
 
@@ -1010,7 +1004,7 @@
   if (ID_REST_STATE_INIT == handle->state) {
     ego_entry = GNUNET_new (struct EgoEntry);
     GNUNET_IDENTITY_ego_get_public_key (ego, &pk);
-    ego_entry->keystring = 
+    ego_entry->keystring =
       GNUNET_CRYPTO_ecdsa_public_key_to_string (&pk);
     ego_entry->ego = ego;
     GNUNET_asprintf (&ego_entry->identifier, "%s", identifier);

Modified: gnunet/src/include/gnunet_os_lib.h
===================================================================
--- gnunet/src/include/gnunet_os_lib.h  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/include/gnunet_os_lib.h  2016-04-09 23:14:03 UTC (rev 37005)
@@ -572,12 +572,9 @@
  * variable) and raise those signals.
  *
  * @param cls closure (unused)
- * @param tc scheduler context (unused)
  */
 void
-GNUNET_OS_install_parent_control_handler (void *cls,
-                                          const struct
-                                          GNUNET_SCHEDULER_TaskContext *tc);
+GNUNET_OS_install_parent_control_handler (void *cls);
 
 
 /**

Modified: gnunet/src/include/gnunet_scheduler_lib.h
===================================================================
--- gnunet/src/include/gnunet_scheduler_lib.h   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/include/gnunet_scheduler_lib.h   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -1,6 +1,6 @@
 /*
       This file is part of GNUnet
-      Copyright (C) 2009-2015 GNUnet e.V.
+      Copyright (C) 2009-2016 GNUnet e.V.
 
       GNUnet is free software; you can redistribute it and/or modify
       it under the terms of the GNU General Public License as published
@@ -131,8 +131,7 @@
  * @param tc context information (why was this task triggered now)
  */
 typedef void
-(*GNUNET_SCHEDULER_TaskCallback) (void *cls,
-                                  const struct GNUNET_SCHEDULER_TaskContext 
*tc);
+(*GNUNET_SCHEDULER_TaskCallback) (void *cls);
 
 
 /**
@@ -200,14 +199,13 @@
 
 
 /**
- * Obtain the reason code for why the current task was
- * started.  Will return the same value as
- * the GNUNET_SCHEDULER_TaskContext's reason field.
+ * Obtain the reasoning why the current task was
+ * started.
  *
- * @return reason(s) why the current task is run
+ * @return task context with information why the current task is run
  */
-enum GNUNET_SCHEDULER_Reason
-GNUNET_SCHEDULER_get_reason (void);
+const struct GNUNET_SCHEDULER_TaskContext *
+GNUNET_SCHEDULER_get_task_context (void);
 
 
 /**

Modified: gnunet/src/include/gnunet_server_lib.h
===================================================================
--- gnunet/src/include/gnunet_server_lib.h      2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/include/gnunet_server_lib.h      2016-04-09 23:14:03 UTC (rev 
37005)
@@ -453,8 +453,9 @@
  * @param client identification of the client; NULL
  *        for the last call when the server is destroyed
  */
-typedef void (*GNUNET_SERVER_DisconnectCallback) (void *cls,
-                                                  struct GNUNET_SERVER_Client 
*client);
+typedef void
+(*GNUNET_SERVER_DisconnectCallback) (void *cls,
+                                     struct GNUNET_SERVER_Client *client);
 
 
 /**
@@ -464,8 +465,9 @@
  * @param cls closure
  * @param client identification of the client
  */
-typedef void (*GNUNET_SERVER_ConnectCallback) (void *cls,
-                                              struct GNUNET_SERVER_Client 
*client);
+typedef void
+(*GNUNET_SERVER_ConnectCallback) (void *cls,
+                                  struct GNUNET_SERVER_Client *client);
 
 
 /**
@@ -799,8 +801,9 @@
  * @param client handle to client the tokenzier will be used for
  * @return handle to custom tokenizer ('mst')
  */
-typedef void* (*GNUNET_SERVER_MstCreateCallback) (void *cls,
-                                                  struct GNUNET_SERVER_Client 
*client);
+typedef void*
+(*GNUNET_SERVER_MstCreateCallback) (void *cls,
+                                    struct GNUNET_SERVER_Client *client);
 
 
 /**
@@ -809,7 +812,9 @@
  * @param cls closure from #GNUNET_SERVER_set_callbacks
  * @param mst custom tokenizer handle
  */
-typedef void (*GNUNET_SERVER_MstDestroyCallback) (void *cls, void *mst);
+typedef void
+(*GNUNET_SERVER_MstDestroyCallback) (void *cls,
+                                     void *mst);
 
 
 /**
@@ -828,10 +833,13 @@
  *         #GNUNET_NO if one_shot was set and we have another message ready
  *         #GNUNET_SYSERR if the data stream is corrupt
  */
-typedef int (*GNUNET_SERVER_MstReceiveCallback) (void *cls, void *mst,
-                                                 struct GNUNET_SERVER_Client 
*client,
-                                                 const char *buf, size_t size,
-                                                 int purge, int one_shot);
+typedef int
+(*GNUNET_SERVER_MstReceiveCallback) (void *cls, void *mst,
+                                     struct GNUNET_SERVER_Client *client,
+                                     const char *buf,
+                                     size_t size,
+                                     int purge,
+                                     int one_shot);
 
 
 /**

Modified: gnunet/src/multicast/gnunet-service-multicast.c
===================================================================
--- gnunet/src/multicast/gnunet-service-multicast.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/multicast/gnunet-service-multicast.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -327,10 +327,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != core)
   {

Modified: gnunet/src/multicast/test_multicast.c
===================================================================
--- gnunet/src/multicast/test_multicast.c       2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/multicast/test_multicast.c       2016-04-09 23:14:03 UTC (rev 
37005)
@@ -132,10 +132,9 @@
  * Terminate the test case (failure).
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   res = 1;
   cleanup ();
@@ -147,10 +146,9 @@
  * Terminate the test case (success).
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-end_normally (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_normally (void *cls)
 {
   res = 0;
   cleanup ();
@@ -176,8 +174,8 @@
 }
 
 
-void
-tmit_resume (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+static void
+tmit_resume (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Transmission resumed.\n");
   struct TransmitClosure *tmit = cls;
@@ -254,7 +252,7 @@
 
 
 static void
-schedule_origin_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+schedule_origin_stop (void *cls)
 {
   test = TEST_ORIGIN_STOP;
   GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -290,7 +288,7 @@
 
 
 static void
-schedule_member_part (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+schedule_member_part (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Test #%u: schedule_member_part()\n", test);

Modified: gnunet/src/namecache/gnunet-namecache.c
===================================================================
--- gnunet/src/namecache/gnunet-namecache.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/namecache/gnunet-namecache.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -68,11 +68,9 @@
  * Task run on shutdown.  Cleans up everything.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-do_shutdown (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != qe)
   {

Modified: gnunet/src/namecache/gnunet-service-namecache.c
===================================================================
--- gnunet/src/namecache/gnunet-service-namecache.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/namecache/gnunet-service-namecache.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -105,10 +105,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_task (void *cls)
 {
   struct NamecacheClient *nc;
 
@@ -426,4 +425,3 @@
 }
 
 /* end of gnunet-service-namecache.c */
-

Modified: gnunet/src/namecache/namecache_api.c
===================================================================
--- gnunet/src/namecache/namecache_api.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/namecache/namecache_api.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -495,11 +495,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-reconnect_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_task (void *cls)
 {
   struct GNUNET_NAMECACHE_Handle *h = cls;
 

Modified: gnunet/src/namecache/test_namecache_api_cache_block.c
===================================================================
--- gnunet/src/namecache/test_namecache_api_cache_block.c       2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/namecache/test_namecache_api_cache_block.c       2016-04-09 
23:14:03 UTC (rev 37005)
@@ -68,10 +68,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (NULL != nsqe)
   {
@@ -84,7 +83,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   cleanup ();
   res = 0;

Modified: gnunet/src/namestore/gnunet-namestore-fcfsd.c
===================================================================
--- gnunet/src/namestore/gnunet-namestore-fcfsd.c       2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/namestore/gnunet-namestore-fcfsd.c       2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -226,11 +226,9 @@
  * Task run whenever HTTP server operations are pending.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-do_httpd (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc);
+do_httpd (void *cls);
 
 
 /**
@@ -840,11 +838,9 @@
  * Task run whenever HTTP server operations are pending.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-do_httpd (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_httpd (void *cls)
 {
   httpd_task = NULL;
   MHD_run (httpd);
@@ -856,11 +852,9 @@
  * Task run on shutdown.  Cleans up everything.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-do_shutdown (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != httpd_task)
   {

Modified: gnunet/src/namestore/gnunet-namestore.c
===================================================================
--- gnunet/src/namestore/gnunet-namestore.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/namestore/gnunet-namestore.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -199,11 +199,9 @@
  * Task run on shutdown.  Cleans up everything.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-do_shutdown (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != get_default)
   {

Modified: gnunet/src/namestore/gnunet-service-namestore.c
===================================================================
--- gnunet/src/namestore/gnunet-service-namestore.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/namestore/gnunet-service-namestore.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -270,10 +270,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_task (void *cls)
 {
   struct ZoneIteration *no;
   struct NamestoreClient *nc;
@@ -1525,11 +1524,9 @@
  * Obtain the next datum during the zone monitor's zone intiial iteration.
  *
  * @param cls zone monitor that does its initial iteration
- * @param tc scheduler context
  */
 static void
-monitor_next (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc);
+monitor_next (void *cls);
 
 
 /**
@@ -1606,11 +1603,9 @@
  * Obtain the next datum during the zone monitor's zone intiial iteration.
  *
  * @param cls zone monitor that does its initial iteration
- * @param tc scheduler context
  */
 static void
-monitor_next (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+monitor_next (void *cls)
 {
   struct ZoneMonitor *zm = cls;
   int ret;

Modified: gnunet/src/namestore/namestore_api.c
===================================================================
--- gnunet/src/namestore/namestore_api.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/namestore/namestore_api.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -866,11 +866,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-reconnect_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_task (void *cls)
 {
   struct GNUNET_NAMESTORE_Handle *h = cls;
 

Modified: gnunet/src/namestore/plugin_rest_namestore.c
===================================================================
--- gnunet/src/namestore/plugin_rest_namestore.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/namestore/plugin_rest_namestore.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -82,12 +82,12 @@
    * DLL
    */
   struct RecordEntry *next;
-  
+
   /**
    * DLL
    */
   struct RecordEntry *prev;
-  
+
 };
 
 struct RequestHandle
@@ -106,12 +106,12 @@
    * JSON response object
    */
   struct JsonApiObject *resp_object;
-  
+
   /**
    * Rest connection
    */
   struct RestConnectionDataHandle *conndata_handle;
-  
+
   /**
    * Handle to GNS service.
    */
@@ -121,12 +121,12 @@
    * Handle to NAMESTORE
    */
   struct GNUNET_NAMESTORE_Handle *ns_handle;
-  
+
   /**
    * Handle to NAMESTORE it
    */
   struct GNUNET_NAMESTORE_ZoneIterator *list_it;
-  
+
   /**
    * Private key for the zone
    */
@@ -205,7 +205,7 @@
   /**
    * ID of a task associated with the resolution process.
    */
-  struct GNUNET_SCHEDULER_Task * timeout_task;    
+  struct GNUNET_SCHEDULER_Task * timeout_task;
 
   /**
    * The plugin result processor
@@ -353,25 +353,25 @@
  * Task run on shutdown.  Cleans up everything.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-do_error (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_error (void *cls)
 {
   struct RequestHandle *handle = cls;
   struct MHD_Response *resp = GNUNET_REST_create_json_response (NULL);
+
   handle->proc (handle->proc_cls, resp, MHD_HTTP_BAD_REQUEST);
   cleanup_handle (handle);
 }
 
+
 static void
-cleanup_handle_delayed (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_handle_delayed (void *cls)
 {
   cleanup_handle (cls);
 }
 
+
 /**
  * Create a response with requested records
  *
@@ -688,7 +688,7 @@
     {
       (*rd)[i].expiration_time = etime_abs.abs_value_us;
     }
-    else 
+    else
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Value `%s' invalid for record 
type `%s'\n"),
                   value, typestring);
@@ -760,7 +760,7 @@
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Name property is no string\n");
-    GNUNET_REST_jsonapi_object_delete (json_obj); 
+    GNUNET_REST_jsonapi_object_delete (json_obj);
     GNUNET_SCHEDULER_add_now (&do_error, handle);
     return;
   }
@@ -844,7 +844,7 @@
   GNUNET_CRYPTO_hash (GNUNET_REST_JSONAPI_NAMESTORE_ZKEY,
                       strlen (GNUNET_REST_JSONAPI_NAMESTORE_ZKEY),
                       &key);
-  if ( GNUNET_NO == 
+  if ( GNUNET_NO ==
        GNUNET_CONTAINER_multihashmap_contains 
(handle->conndata_handle->url_param_map,
                                                &key) )
   {
@@ -1058,7 +1058,7 @@
   GNUNET_CRYPTO_hash (GNUNET_REST_JSONAPI_NAMESTORE_EGO,
                       strlen (GNUNET_REST_JSONAPI_NAMESTORE_EGO),
                       &key);
-  if ( GNUNET_YES == 
+  if ( GNUNET_YES ==
        GNUNET_CONTAINER_multihashmap_contains 
(handle->conndata_handle->url_param_map,
                                                &key) )
   {
@@ -1070,7 +1070,7 @@
   GNUNET_CRYPTO_hash (GNUNET_REST_JSONAPI_NAMESTORE_RECORD_TYPE,
                       strlen (GNUNET_REST_JSONAPI_NAMESTORE_RECORD_TYPE),
                       &key);
-  if ( GNUNET_YES == 
+  if ( GNUNET_YES ==
        GNUNET_CONTAINER_multihashmap_contains 
(handle->conndata_handle->url_param_map,
                                                &key) )
   {

Modified: gnunet/src/namestore/test_namestore_api_lookup_nick.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_lookup_nick.c       2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_lookup_nick.c       2016-04-09 
23:14:03 UTC (rev 37005)
@@ -79,7 +79,7 @@
  * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (NULL != nsqe)
   {
@@ -92,17 +92,19 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   cleanup ();
   res = 0;
 }
 
-void lookup_it (void *cls,
-                const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone,
-                const char *label,
-                unsigned int rd_count,
-                const struct GNUNET_GNSRECORD_Data *rd)
+
+static void
+lookup_it (void *cls,
+           const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone,
+           const char *label,
+           unsigned int rd_count,
+           const struct GNUNET_GNSRECORD_Data *rd)
 {
   nsqe = NULL;
   int c;

Modified: gnunet/src/namestore/test_namestore_api_lookup_private.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_lookup_private.c    2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_lookup_private.c    2016-04-09 
23:14:03 UTC (rev 37005)
@@ -74,7 +74,7 @@
  * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (NULL != nsqe)
   {
@@ -87,17 +87,19 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   cleanup ();
   res = 0;
 }
 
-void lookup_it (void *cls,
-                const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone,
-                const char *label,
-                unsigned int rd_count,
-                const struct GNUNET_GNSRECORD_Data *rd)
+
+static void
+lookup_it (void *cls,
+           const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone,
+           const char *label,
+           unsigned int rd_count,
+           const struct GNUNET_GNSRECORD_Data *rd)
 {
   nsqe = NULL;
 

Modified: gnunet/src/namestore/test_namestore_api_lookup_public.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_lookup_public.c     2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_lookup_public.c     2016-04-09 
23:14:03 UTC (rev 37005)
@@ -79,10 +79,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (NULL != nsqe)
   {
@@ -100,7 +99,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   cleanup ();
   res = 0;

Modified: gnunet/src/namestore/test_namestore_api_lookup_shadow.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_lookup_shadow.c     2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_lookup_shadow.c     2016-04-09 
23:14:03 UTC (rev 37005)
@@ -81,10 +81,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (NULL != nsqe)
   {
@@ -102,7 +101,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   cleanup ();
   res = 0;

Modified: gnunet/src/namestore/test_namestore_api_lookup_shadow_filter.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_lookup_shadow_filter.c      
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_lookup_shadow_filter.c      
2016-04-09 23:14:03 UTC (rev 37005)
@@ -94,10 +94,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (NULL != delayed_lookup_task)
   {
@@ -120,7 +119,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   cleanup ();
   res = 0;
@@ -244,8 +243,9 @@
                &pubkey, TEST_NAME, &rd_decrypt_cb, expected_rd));
 }
 
+
 static void
-name_lookup_shadow (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+name_lookup_shadow (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Performing lookup for shadow record \n");

Modified: gnunet/src/namestore/test_namestore_api_monitoring.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_monitoring.c        2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_monitoring.c        2016-04-09 
23:14:03 UTC (rev 37005)
@@ -126,10 +126,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   do_shutdown ();
   res = 1;
@@ -137,7 +136,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   do_shutdown ();
   res = 0;

Modified: gnunet/src/namestore/test_namestore_api_monitoring_existing.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_monitoring_existing.c       
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_monitoring_existing.c       
2016-04-09 23:14:03 UTC (rev 37005)
@@ -127,10 +127,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   do_shutdown ();
   res = 1;
@@ -138,7 +137,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   do_shutdown ();
   res = 0;
@@ -152,8 +151,9 @@
           unsigned int rd_count,
           const struct GNUNET_GNSRECORD_Data *rd)
 {
-       static int returned_records;
-       static int fail = GNUNET_NO;
+  static int returned_records;
+  static int fail = GNUNET_NO;
+
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "Comparing results name %s\n",
              name);

Modified: gnunet/src/namestore/test_namestore_api_remove.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_remove.c    2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/namestore/test_namestore_api_remove.c    2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -71,10 +71,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (NULL != nsqe)
   {
@@ -87,7 +86,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   cleanup ();
   res = 0;

Modified: gnunet/src/namestore/test_namestore_api_remove_not_existing_record.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_remove_not_existing_record.c        
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_remove_not_existing_record.c        
2016-04-09 23:14:03 UTC (rev 37005)
@@ -69,10 +69,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (NULL != nsqe)
   {
@@ -85,8 +84,7 @@
 
 
 static void
-end (void *cls,
-     const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   cleanup ();
   res = 0;

Modified: gnunet/src/namestore/test_namestore_api_store.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_store.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/namestore/test_namestore_api_store.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -69,10 +69,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (NULL != nsqe)
   {
@@ -85,7 +84,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   cleanup ();
   res = 0;

Modified: gnunet/src/namestore/test_namestore_api_store_update.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_store_update.c      2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_store_update.c      2016-04-09 
23:14:03 UTC (rev 37005)
@@ -91,11 +91,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (NULL != nsqe)
   {
@@ -113,8 +111,7 @@
 
 
 static void
-end (void *cls,
-     const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   cleanup ();
   res = 0;

Modified: gnunet/src/namestore/test_namestore_api_zone_iteration.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_zone_iteration.c    2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_zone_iteration.c    2016-04-09 
23:14:03 UTC (rev 37005)
@@ -66,7 +66,7 @@
  * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (NULL != zi)
   {
@@ -110,7 +110,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   if (NULL != zi)
   {

Modified: gnunet/src/namestore/test_namestore_api_zone_iteration_nick.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_zone_iteration_nick.c       
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_zone_iteration_nick.c       
2016-04-09 23:14:03 UTC (rev 37005)
@@ -69,7 +69,7 @@
  * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (NULL != zi)
   {
@@ -113,7 +113,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   if (NULL != zi)
   {

Modified: gnunet/src/namestore/test_namestore_api_zone_iteration_specific_zone.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_zone_iteration_specific_zone.c      
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_zone_iteration_specific_zone.c      
2016-04-09 23:14:03 UTC (rev 37005)
@@ -66,14 +66,13 @@
  * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
-       if (NULL != zi)
-       {
-               GNUNET_NAMESTORE_zone_iteration_stop (zi);
-               zi = NULL;
-       }
-
+  if (NULL != zi)
+  {
+    GNUNET_NAMESTORE_zone_iteration_stop (zi);
+    zi = NULL;
+  }
   if (nsh != NULL)
     GNUNET_NAMESTORE_disconnect (nsh);
   nsh = NULL;
@@ -110,13 +109,13 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
-       if (NULL != zi)
-       {
-               GNUNET_NAMESTORE_zone_iteration_stop (zi);
-               zi = NULL;
-       }
+  if (NULL != zi)
+  {
+    GNUNET_NAMESTORE_zone_iteration_stop (zi);
+    zi = NULL;
+  }
 
   if (endbadly_task != NULL)
   {

Modified: gnunet/src/namestore/test_namestore_api_zone_iteration_stop.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_zone_iteration_stop.c       
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_zone_iteration_stop.c       
2016-04-09 23:14:03 UTC (rev 37005)
@@ -63,16 +63,15 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
-       if (NULL != zi)
-       {
-               GNUNET_NAMESTORE_zone_iteration_stop (zi);
-               zi = NULL;
-       }
+  if (NULL != zi)
+  {
+    GNUNET_NAMESTORE_zone_iteration_stop (zi);
+    zi = NULL;
+  }
 
   if (nsh != NULL)
     GNUNET_NAMESTORE_disconnect (nsh);
@@ -110,13 +109,13 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   if (NULL != zi)
-    {
-      GNUNET_NAMESTORE_zone_iteration_stop (zi);
-      zi = NULL;
-    }
+  {
+    GNUNET_NAMESTORE_zone_iteration_stop (zi);
+    zi = NULL;
+  }
 
   if (endbadly_task != NULL)
   {

Modified: gnunet/src/namestore/test_namestore_api_zone_to_name.c
===================================================================
--- gnunet/src/namestore/test_namestore_api_zone_to_name.c      2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/namestore/test_namestore_api_zone_to_name.c      2016-04-09 
23:14:03 UTC (rev 37005)
@@ -63,10 +63,9 @@
  * Re-establish the connection to the service.
  *
  * @param cls handle to use to re-connect.
- * @param tc scheduler context
  */
 static void
-endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+endbadly (void *cls)
 {
   if (nsh != NULL)
     GNUNET_NAMESTORE_disconnect (nsh);
@@ -79,7 +78,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   if (endbadly_task != NULL)
   {

Modified: gnunet/src/nat/gnunet-nat-server.c
===================================================================
--- gnunet/src/nat/gnunet-nat-server.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nat/gnunet-nat-server.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -92,13 +92,14 @@
  * (or once we failed to connect...).
  *
  * @param cls the 'struct TcpContext'
- * @param tc scheduler context
  */
 static void
-tcp_send (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+tcp_send (void *cls)
 {
   struct TcpContext *ctx = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((NULL != tc->write_ready) &&
       (GNUNET_NETWORK_fdset_isset (tc->write_ready, ctx->s)))
   {
@@ -228,10 +229,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_SERVER_destroy (server);
   server = NULL;

Modified: gnunet/src/nat/nat.c
===================================================================
--- gnunet/src/nat/nat.c        2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nat/nat.c        2016-04-09 23:14:03 UTC (rev 37005)
@@ -463,11 +463,9 @@
  * Call task to process STUN
  *
  * @param cls handle to NAT
- * @param tc TaskContext
  */
 static void
-process_stun (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc);
+process_stun (void *cls);
 
 
 /**
@@ -662,10 +660,9 @@
  * get DynDNS-IP addresses.
  *
  * @param cls the NAT handle
- * @param tc scheduler context
  */
 static void
-resolve_dns (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+resolve_dns (void *cls);
 
 
 /**
@@ -716,11 +713,9 @@
  * Task to do a lookup on our hostname for IP addresses.
  *
  * @param cls the NAT handle
- * @param tc scheduler context
  */
 static void
-resolve_hostname (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc);
+resolve_hostname (void *cls);
 
 
 /**
@@ -938,14 +933,15 @@
  * after a certain delay.
  *
  * @param cls the `struct GNUNET_NAT_Handle`
- * @param tc scheduler context
  */
 static void
-restart_nat_server (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+restart_nat_server (void *cls)
 {
   struct GNUNET_NAT_Handle *h = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   h->server_read_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   start_gnunet_nat_server (h);
@@ -958,11 +954,9 @@
  * function to be called again once more is available.
  *
  * @param cls the NAT handle
- * @param tc the scheduling context
  */
 static void
-nat_server_read (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+nat_server_read (void *cls)
 {
   struct GNUNET_NAT_Handle *h = cls;
   char mybuf[40];
@@ -971,8 +965,10 @@
   int port;
   const char *port_start;
   struct sockaddr_in sin_addr;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   h->server_read_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   memset (mybuf, 0, sizeof (mybuf));
@@ -1099,11 +1095,9 @@
  * Task to scan the local network interfaces for IP addresses.
  *
  * @param cls the NAT handle
- * @param tc scheduler context
  */
 static void
-list_interfaces (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+list_interfaces (void *cls)
 {
   struct GNUNET_NAT_Handle *h = cls;
 
@@ -1209,11 +1203,9 @@
  * Task to do a STUN request
  *
  * @param cls the NAT handle
- * @param tc scheduler context
  */
 static void
-process_stun (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+process_stun (void *cls)
 {
   struct GNUNET_NAT_Handle *h = cls;
   struct StunServerList* elem = h->actual_stun_server;
@@ -1264,11 +1256,9 @@
  * Task to do a lookup on our hostname for IP addresses.
  *
  * @param cls the NAT handle
- * @param tc scheduler context
  */
 static void
-resolve_hostname (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+resolve_hostname (void *cls)
 {
   struct GNUNET_NAT_Handle *h = cls;
 
@@ -1285,11 +1275,9 @@
  * get DynDNS-IP addresses.
  *
  * @param cls the NAT handle
- * @param tc scheduler context
  */
 static void
-resolve_dns (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+resolve_dns (void *cls)
 {
   struct GNUNET_NAT_Handle *h = cls;
   struct LocalAddressList *pos;

Modified: gnunet/src/nat/nat_auto.c
===================================================================
--- gnunet/src/nat/nat_auto.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nat/nat_auto.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -258,18 +258,17 @@
  * incoming connection.
  *
  * @param cls
- * @param tc scheduler context
  */
 static void
-do_udp_read (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_udp_read (void *cls)
 {
   struct GNUNET_NAT_AutoHandle *ah = cls;
   unsigned char reply_buf[1024];
   ssize_t rlen;
   struct sockaddr_in answer;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((0 != (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY)) &&
       (GNUNET_NETWORK_fdset_isset (tc->read_ready,
                                    lsock4)))
@@ -402,11 +401,9 @@
  * Main function for the connection reversal test.
  *
  * @param cls the `struct GNUNET_NAT_AutoHandle`
- * @param tc scheduler context
  */
 static void
-reversal_test (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+reversal_test (void *cls)
 {
   struct GNUNET_NAT_AutoHandle *ah = cls;
 

Modified: gnunet/src/nat/nat_mini.c
===================================================================
--- gnunet/src/nat/nat_mini.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nat/nat_mini.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -110,17 +110,17 @@
  * address and call our callback.
  *
  * @param cls the `struct GNUNET_NAT_ExternalHandle`
- * @param tc scheduler context
  */
 static void
-read_external_ipv4 (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+read_external_ipv4 (void *cls)
 {
   struct GNUNET_NAT_ExternalHandle *eh = cls;
   ssize_t ret;
   struct in_addr addr;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   eh->task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (GNUNET_YES == GNUNET_NETWORK_fdset_handle_isset (tc->read_ready, eh->r))
     ret =
         GNUNET_DISK_file_read (eh->r, &eh->buf[eh->off],
@@ -162,11 +162,9 @@
  * (Asynchronously) signal error invoking "external-ip" to client.
  *
  * @param cls the `struct GNUNET_NAT_ExternalHandle` (freed)
- * @param tc scheduler context
  */
 static void
-signal_external_ip_error (void *cls,
-                          const struct GNUNET_SCHEDULER_TaskContext *tc)
+signal_external_ip_error (void *cls)
 {
   struct GNUNET_NAT_ExternalHandle *eh = cls;
 
@@ -329,10 +327,9 @@
  * Run "upnpc -l" to find out if our mapping changed.
  *
  * @param cls the `struct GNUNET_NAT_MiniHandle`
- * @param tc scheduler context
  */
 static void
-do_refresh (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+do_refresh (void *cls);
 
 
 /**
@@ -478,10 +475,9 @@
  * Run "upnpc -l" to find out if our mapping changed.
  *
  * @param cls the 'struct GNUNET_NAT_MiniHandle'
- * @param tc scheduler context
  */
 static void
-do_refresh (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_refresh (void *cls)
 {
   struct GNUNET_NAT_MiniHandle *mini = cls;
   int ac;

Modified: gnunet/src/nat/nat_test.c
===================================================================
--- gnunet/src/nat/nat_test.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nat/nat_test.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -205,15 +205,15 @@
  * incoming connection.
  *
  * @param cls the `struct GNUNET_NAT_Test`
- * @param tc scheduler context
  */
 static void
-do_udp_read (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_udp_read (void *cls)
 {
   struct GNUNET_NAT_Test *tst = cls;
   uint16_t data;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   tst->ltask =
       GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
                                      tst->lsock,
@@ -240,16 +240,16 @@
  * incoming connection.
  *
  * @param cls the `struct NatActivity`
- * @param tc scheduler context
  */
 static void
-do_read (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_read (void *cls)
 {
   struct NatActivity *na = cls;
   struct GNUNET_NAT_Test *tst;
   uint16_t data;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   na->rtask = NULL;
   tst = na->h;
   GNUNET_CONTAINER_DLL_remove (tst->na_head, tst->na_tail, na);
@@ -277,17 +277,17 @@
  * incoming connection.
  *
  * @param cls the `struct GNUNET_NAT_Test`
- * @param tc scheduler context
  */
 static void
-do_accept (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_accept (void *cls)
 {
   struct GNUNET_NAT_Test *tst = cls;
   struct GNUNET_NETWORK_Handle *s;
   struct NatActivity *wl;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   tst->ltask = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   tst->ltask =
@@ -378,11 +378,9 @@
  * Destroys the nat handle after the callback has been processed.
  *
  * @param cls handle to the timed out NAT test
- * @param tc not used
  */
 static void
-do_timeout (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_timeout (void *cls)
 {
   struct GNUNET_NAT_Test *nh = cls;
 
@@ -440,8 +438,8 @@
   nh->status = GNUNET_NAT_ERROR_SUCCESS;
   if (0 == bnd_port)
   {
-    nh->nat 
-      = GNUNET_NAT_register (cfg, is_tcp, 0, 0, 
+    nh->nat
+      = GNUNET_NAT_register (cfg, is_tcp, 0, 0,
                             NULL, NULL,
                             &addr_cb,
                              &reversal_cb, nh, NULL);

Modified: gnunet/src/nat/test_nat.c
===================================================================
--- gnunet/src/nat/test_nat.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nat/test_nat.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -65,7 +65,7 @@
  * Function that terminates the test.
  */
 static void
-stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+stop (void *cls)
 {
   struct GNUNET_NAT_Handle *nat = cls;
 

Modified: gnunet/src/nat/test_nat_mini.c
===================================================================
--- gnunet/src/nat/test_nat_mini.c      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nat/test_nat_mini.c      2016-04-09 23:14:03 UTC (rev 37005)
@@ -67,7 +67,7 @@
  * Function that terminates the test.
  */
 static void
-stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+stop (void *cls)
 {
   struct GNUNET_NAT_MiniHandle *mini = cls;
 

Modified: gnunet/src/nat/test_nat_test.c
===================================================================
--- gnunet/src/nat/test_nat_test.c      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nat/test_nat_test.c      2016-04-09 23:14:03 UTC (rev 37005)
@@ -59,8 +59,7 @@
 
 
 static void
-failed_timeout (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+failed_timeout (void *cls)
 {
   tsk = NULL;
   fprintf (stderr,
@@ -86,7 +85,7 @@
                                                                     2),
                                      &failed_timeout,
                                      NULL);
-  
+
 }
 
 
@@ -127,7 +126,7 @@
                                  "12345", NULL);
   GNUNET_assert (NULL != gns);
   GNUNET_PROGRAM_run (3, argv_prog,
-                     "test-nat-test", "nohelp", 
+                     "test-nat-test", "nohelp",
                      options, &run,
                       NULL);
   GNUNET_break (0 == GNUNET_OS_process_kill (gns, GNUNET_TERM_SIG));

Modified: gnunet/src/nat/test_stun.c
===================================================================
--- gnunet/src/nat/test_stun.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nat/test_stun.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -112,18 +112,18 @@
  * incoming connection.
  *
  * @param cls
- * @param tc scheduler context
  */
 static void
-do_udp_read (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_udp_read (void *cls)
 {
   //struct GNUNET_NAT_Test *tst = cls;
   unsigned char reply_buf[1024];
   ssize_t rlen;
   struct sockaddr_in answer;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   ltask4 = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ( (0 == (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY)) ||
        (! GNUNET_NETWORK_fdset_isset (tc->read_ready,
                                       lsock4)) )

Modified: gnunet/src/nse/gnunet-nse-profiler.c
===================================================================
--- gnunet/src/nse/gnunet-nse-profiler.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/nse/gnunet-nse-profiler.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -265,10 +265,9 @@
  * Task run on shutdown; cleans up everything.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   shutdown_task_id = NULL;
   if (GNUNET_YES == shutting_down)
@@ -542,11 +541,9 @@
  * Task that starts/stops peers to move to the next round.
  *
  * @param cls NULL, unused
- * @param tc scheduler context (unused)
  */
 static void
-next_round (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc);
+next_round (void *cls);
 
 
 /**
@@ -555,12 +552,13 @@
  * the next round.
  *
  * @param cls unused, NULL
- * @param tc unused
  */
 static void
-finish_round (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+finish_round (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
   LOG (GNUNET_ERROR_TYPE_INFO, "Have %u connections\n", total_connections);
@@ -670,12 +668,13 @@
  * peers; then get statistics from *all* peers.
  *
  * @param cls NULL, unused
- * @param tc unused
  */
 static void
-next_round (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+next_round (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
   LOG_DEBUG ("Disconnecting nse service of peers\n");

Modified: gnunet/src/nse/gnunet-nse.c
===================================================================
--- gnunet/src/nse/gnunet-nse.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nse/gnunet-nse.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -21,7 +21,7 @@
 /**
  * @file nse/gnunet-nse.c
  * @brief Program to display network size estimates from the NSE service
- * @author Sree Harsha Totakura <address@hidden> 
+ * @author Sree Harsha Totakura <address@hidden>
  */
 
 #include "platform.h"
@@ -57,10 +57,9 @@
  * Task to shutdown and clean up all state
  *
  * @param cls NULL
- * @param tc the scheduler task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   shutdown_task = NULL;
   if (NULL != test)
@@ -160,7 +159,7 @@
   static struct GNUNET_GETOPT_CommandLineOption options[] = {
     GNUNET_GETOPT_OPTION_END
   };
-  
+
   status = 1;
   if (GNUNET_OK !=
       GNUNET_PROGRAM_run (argc, argv, "gnunet-nse",

Modified: gnunet/src/nse/gnunet-service-nse.c
===================================================================
--- gnunet/src/nse/gnunet-service-nse.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nse/gnunet-service-nse.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -593,11 +593,9 @@
  * Task that triggers a NSE P2P transmission.
  *
  * @param cls the `struct NSEPeerEntry *`
- * @param tc scheduler context
  */
 static void
-transmit_task_cb (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc);
+transmit_task_cb (void *cls);
 
 
 /**
@@ -673,11 +671,9 @@
  * Task that triggers a NSE P2P transmission.
  *
  * @param cls the `struct NSEPeerEntry *`
- * @param tc scheduler context
  */
 static void
-transmit_task_cb (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+transmit_task_cb (void *cls)
 {
   struct NSEPeerEntry *peer_entry = cls;
 
@@ -797,16 +793,16 @@
  * Update our flood message to be sent (and our timestamps).
  *
  * @param cls unused
- * @param tc context for this message
  */
 static void
-update_flood_message (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+update_flood_message (void *cls)
 {
   struct GNUNET_TIME_Relative offset;
   unsigned int i;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   flood_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   offset = GNUNET_TIME_absolute_get_remaining (next_timestamp);
@@ -918,11 +914,9 @@
  * Find our proof of work.
  *
  * @param cls closure (unused)
- * @param tc task context
  */
 static void
-find_proof (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+find_proof (void *cls)
 {
 #define ROUND_SIZE 10
   uint64_t counter;
@@ -1343,11 +1337,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != flood_task)
   {

Modified: gnunet/src/nse/nse_api.c
===================================================================
--- gnunet/src/nse/nse_api.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nse/nse_api.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -81,10 +81,9 @@
  * Try again to connect to network size estimation service.
  *
  * @param cls the handle to the transport service
- * @param tc scheduler context
  */
 static void
-reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+reconnect (void *cls);
 
 
 /**
@@ -198,11 +197,9 @@
  * Try again to connect to network size estimation service.
  *
  * @param cls the `struct GNUNET_NSE_Handle *`
- * @param tc scheduler context
  */
 static void
-reconnect (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect (void *cls)
 {
   struct GNUNET_NSE_Handle *h = cls;
 

Modified: gnunet/src/nse/test_nse_api.c
===================================================================
--- gnunet/src/nse/test_nse_api.c       2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nse/test_nse_api.c       2016-04-09 23:14:03 UTC (rev 37005)
@@ -36,10 +36,9 @@
  * Signature of the main function of a task.
  *
  * @param cls closure
- * @param tc context information (why was this task triggered now)
  */
 static void
-end_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_test (void *cls)
 {
   if (h != NULL)
   {

Modified: gnunet/src/nse/test_nse_multipeer.c
===================================================================
--- gnunet/src/nse/test_nse_multipeer.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/nse/test_nse_multipeer.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -72,7 +72,7 @@
  * Task run on timeout to shut everything down.
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   unsigned int i;
 

Modified: gnunet/src/peerinfo/gnunet-service-peerinfo.c
===================================================================
--- gnunet/src/peerinfo/gnunet-service-peerinfo.c       2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/peerinfo/gnunet-service-peerinfo.c       2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -651,15 +651,15 @@
  * Call this method periodically to scan data/hosts for new hosts.
  *
  * @param cls unused
- * @param tc scheduler context, aborted if reason is shutdown
  */
 static void
-cron_scan_directory_data_hosts (void *cls,
-                                const struct GNUNET_SCHEDULER_TaskContext *tc)
+cron_scan_directory_data_hosts (void *cls)
 {
   static unsigned int retries;
   struct DirScanContext dsc;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   if (GNUNET_SYSERR == GNUNET_DISK_directory_create (networkIdDirectory))
@@ -1041,14 +1041,14 @@
  * HELLOs to expire.
  *
  * @param cls unused
- * @param tc scheduler context, aborted if reason is shutdown
  */
 static void
-cron_clean_data_hosts (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+cron_clean_data_hosts (void *cls)
 {
   struct GNUNET_TIME_Absolute now;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   now = GNUNET_TIME_absolute_get ();
@@ -1277,11 +1277,9 @@
  * Clean up our state.  Called during shutdown.
  *
  * @param cls unused
- * @param tc scheduler task context, unused
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct NotificationContext *cur;
   struct NotificationContext *next;

Modified: gnunet/src/peerinfo/peerinfo_api.c
===================================================================
--- gnunet/src/peerinfo/peerinfo_api.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/peerinfo/peerinfo_api.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -279,11 +279,9 @@
  * Task scheduled to re-try connecting to the peerinfo service.
  *
  * @param cls the `struct GNUNET_PEERINFO_Handle *`
- * @param tc scheduler context
  */
 static void
-reconnect_task (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_task (void *cls)
 {
   struct GNUNET_PEERINFO_Handle *h = cls;
 
@@ -698,11 +696,9 @@
  * Peerinfo iteration request has timed out.
  *
  * @param cls the `struct GNUNET_PEERINFO_IteratorContext *`
- * @param tc scheduler context
  */
 static void
-signal_timeout (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+signal_timeout (void *cls)
 {
   struct GNUNET_PEERINFO_IteratorContext *ic = cls;
   GNUNET_PEERINFO_Processor cb;

Modified: gnunet/src/peerinfo/peerinfo_api_notify.c
===================================================================
--- gnunet/src/peerinfo/peerinfo_api_notify.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/peerinfo/peerinfo_api_notify.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -99,11 +99,10 @@
 /**
  * Task to re-try connecting to peerinfo.
  *
- * @param cls the 'struct GNUNET_PEERINFO_NotifyContext'
- * @param tc scheduler context
+ * @param cls the `struct GNUNET_PEERINFO_NotifyContext *`
  */
 static void
-reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect (void *cls)
 {
   struct GNUNET_PEERINFO_NotifyContext *nc = cls;
 
@@ -138,7 +137,7 @@
   if (msg == NULL)
   {
     GNUNET_CLIENT_disconnect (nc->client);
-    reconnect (nc, NULL);
+    reconnect (nc);
     return;
   }
   ms = ntohs (msg->size);

Modified: gnunet/src/peerinfo/test_peerinfo_api_notify_friend_only.c
===================================================================
--- gnunet/src/peerinfo/test_peerinfo_api_notify_friend_only.c  2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/peerinfo/test_peerinfo_api_notify_friend_only.c  2016-04-09 
23:14:03 UTC (rev 37005)
@@ -58,10 +58,10 @@
 
 struct GNUNET_PeerIdentity pid;
 
-struct GNUNET_SCHEDULER_Task * timeout_task;
+struct GNUNET_SCHEDULER_Task *timeout_task;
 
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   timeout_task = NULL;
   GNUNET_break(0);
@@ -83,8 +83,9 @@
   global_ret = 255;
 }
 
+
 static void
-done (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+done (void *cls)
 {
   if (NULL != pnc_w_fo)
     GNUNET_PEERINFO_notify_cancel (pnc_w_fo);

Modified: gnunet/src/peerinfo-tool/gnunet-peerinfo.c
===================================================================
--- gnunet/src/peerinfo-tool/gnunet-peerinfo.c  2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/peerinfo-tool/gnunet-peerinfo.c  2016-04-09 23:14:03 UTC (rev 
37005)
@@ -223,11 +223,9 @@
  * runs the next requested function.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-state_machine (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc);
+state_machine (void *cls);
 
 
 /* ********************* 'get_info' ******************* */
@@ -620,11 +618,9 @@
  * runs the next requested function.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-shutdown_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct PrintContext *pc;
   struct AddressRecord *ar;
@@ -809,11 +805,9 @@
  * runs the next requested function.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-state_machine (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+state_machine (void *cls)
 {
   tt = NULL;
 

Modified: gnunet/src/peerstore/gnunet-peerstore.c
===================================================================
--- gnunet/src/peerstore/gnunet-peerstore.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/peerstore/gnunet-peerstore.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -32,16 +32,16 @@
 /*
  * Handle to PEERSTORE service
  */
-struct GNUNET_PEERSTORE_Handle *peerstore_handle;
+static struct GNUNET_PEERSTORE_Handle *peerstore_handle;
 
+
 /**
  * Run on shutdown
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != peerstore_handle)
   {

Modified: gnunet/src/peerstore/gnunet-service-peerstore.c
===================================================================
--- gnunet/src/peerstore/gnunet-service-peerstore.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/peerstore/gnunet-service-peerstore.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -125,10 +125,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   in_shutdown = GNUNET_YES;
   if (NULL == client_head)      /* Only when no connected clients. */
@@ -145,11 +144,12 @@
  * Deletes any expired records from storage
  */
 static void
-cleanup_expired_records (void *cls,
-                         const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_expired_records (void *cls)
 {
   int ret;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_assert (NULL != db);

Modified: gnunet/src/peerstore/peerstore_api.c
===================================================================
--- gnunet/src/peerstore/peerstore_api.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/peerstore/peerstore_api.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -358,10 +358,9 @@
  * Called when the iterate request is timedout
  *
  * @param cls a `struct GNUNET_PEERSTORE_IterateContext *`
- * @param tc Scheduler task context (unused)
  */
 static void
-iterate_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+iterate_timeout (void *cls)
 {
   struct GNUNET_PEERSTORE_IterateContext *ic = cls;
   GNUNET_PEERSTORE_Processor callback;

Modified: gnunet/src/peerstore/test_peerstore_api_sync.c
===================================================================
--- gnunet/src/peerstore/test_peerstore_api_sync.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/peerstore/test_peerstore_api_sync.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -80,7 +80,7 @@
  * @return #GNUNET_YES (all good, continue)
  */
 static int
-iterate_cb (void *cls, 
+iterate_cb (void *cls,
            const struct GNUNET_PEERSTORE_Record *record,
             const char *emsg)
 {
@@ -89,7 +89,7 @@
   GNUNET_break (NULL == emsg);
   if (NULL == record)
   {
-    GNUNET_PEERSTORE_disconnect (h, 
+    GNUNET_PEERSTORE_disconnect (h,
                                 GNUNET_NO);
     GNUNET_SCHEDULER_shutdown ();
     return GNUNET_YES;
@@ -106,17 +106,15 @@
  * data that should have been stored.
  *
  * @param cls NULL
- * @param tc unused
  */
 static void
-test_cont (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+test_cont (void *cls)
 {
   h = GNUNET_PEERSTORE_connect (cfg);
-  GNUNET_PEERSTORE_iterate (h, 
-                           subsystem, 
+  GNUNET_PEERSTORE_iterate (h,
+                           subsystem,
                            &pid, key,
-                            GNUNET_TIME_UNIT_FOREVER_REL, 
+                            GNUNET_TIME_UNIT_FOREVER_REL,
                            &iterate_cb, NULL);
 }
 
@@ -128,15 +126,15 @@
 test1 ()
 {
   h = GNUNET_PEERSTORE_connect (cfg);
-  GNUNET_PEERSTORE_store (h, 
+  GNUNET_PEERSTORE_store (h,
                          subsystem,
-                         &pid, 
-                         key, 
+                         &pid,
+                         key,
                          val, strlen (val) + 1,
                           GNUNET_TIME_UNIT_FOREVER_ABS,
-                          GNUNET_PEERSTORE_STOREOPTION_REPLACE, 
+                          GNUNET_PEERSTORE_STOREOPTION_REPLACE,
                          NULL, NULL);
-  GNUNET_PEERSTORE_disconnect (h, 
+  GNUNET_PEERSTORE_disconnect (h,
                               GNUNET_YES);
   h = NULL;
   /* We need to wait a little bit to give the disconnect
@@ -158,7 +156,7 @@
  * @param peer handle to our peer (unused)
  */
 static void
-run (void *cls, 
+run (void *cls,
      const struct GNUNET_CONFIGURATION_Handle *c,
      struct GNUNET_TESTING_Peer *peer)
 {
@@ -173,7 +171,7 @@
 main (int argc, char *argv[])
 {
   if (0 !=
-      GNUNET_TESTING_service_run ("test-gnunet-peerstore-sync", 
+      GNUNET_TESTING_service_run ("test-gnunet-peerstore-sync",
                                  "peerstore",
                                   "test_peerstore_api_data.conf",
                                  &run, NULL))

Modified: gnunet/src/pq/test_pq.c
===================================================================
--- gnunet/src/pq/test_pq.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/pq/test_pq.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -102,8 +102,9 @@
   PGresult *result;
   int ret;
   struct GNUNET_CRYPTO_RsaPrivateKey *priv;
-  char msg[] = "Hello";
+  const char msg[] = "hello";
   void *msg2;
+  struct GNUNET_HashCode hmsg;
   size_t msg2_len;
   uint16_t u16;
   uint16_t u162;
@@ -114,9 +115,9 @@
 
   priv = GNUNET_CRYPTO_rsa_private_key_create (1024);
   pub = GNUNET_CRYPTO_rsa_private_key_get_public (priv);
-  sig = GNUNET_CRYPTO_rsa_sign (priv,
-                               msg,
-                               sizeof (msg));
+  memset (&hmsg, 42, sizeof (hmsg));
+  sig = GNUNET_CRYPTO_rsa_sign_fdh (priv,
+                                    &hmsg);
   u16 = 16;
   u32 = 32;
   u64 = 64;

Modified: gnunet/src/psyc/gnunet-service-psyc.c
===================================================================
--- gnunet/src/psyc/gnunet-service-psyc.c       2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/psyc/gnunet-service-psyc.c       2016-04-09 23:14:03 UTC (rev 
37005)
@@ -428,10 +428,10 @@
 
 
 static void
-schedule_transmit_message (void *cls,
-                           const struct GNUNET_SCHEDULER_TaskContext *tc)
+schedule_transmit_message (void *cls)
 {
   struct Channel *chn = cls;
+
   transmit_message (chn);
 }
 
@@ -440,10 +440,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != nc)
   {

Modified: gnunet/src/psyc/test_psyc.c
===================================================================
--- gnunet/src/psyc/test_psyc.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/psyc/test_psyc.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -158,10 +158,9 @@
  * Terminate the test case (failure).
  *
  * @param cls NULL
- * @param tc scheduler context
  */
-void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+static void
+end_badly (void *cls)
 {
   res = 1;
   cleanup ();
@@ -173,10 +172,9 @@
  * Terminate the test case (success).
  *
  * @param cls NULL
- * @param tc scheduler context
  */
-void
-end_normally (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+static void
+end_normally (void *cls)
 {
   res = 0;
   cleanup ();
@@ -545,8 +543,8 @@
 }
 
 
-void
-transmit_resume (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+static void
+transmit_resume (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Transmission resumed.\n");
   struct TransmitClosure *tmit = cls;
@@ -753,8 +751,8 @@
 }
 
 
-void
-schedule_slave_part (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+static void
+schedule_slave_part (void *cls)
 {
   GNUNET_PSYC_slave_part (slv, GNUNET_NO, first_slave_parted, NULL);
 }
@@ -925,8 +923,9 @@
   mst_chn = GNUNET_PSYC_master_get_channel (mst);
 }
 
-void
-schedule_master_start (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+
+static void
+schedule_master_start (void *cls)
 {
   master_start ();
 }

Modified: gnunet/src/psycstore/gnunet-service-psycstore.c
===================================================================
--- gnunet/src/psycstore/gnunet-service-psycstore.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/psycstore/gnunet-service-psycstore.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -1,4 +1,4 @@
-/*
+/**
  * This file is part of GNUnet
  * Copyright (C) 2013 GNUnet e.V.
  *
@@ -68,10 +68,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != nc)
   {

Modified: gnunet/src/psycstore/psycstore_api.c
===================================================================
--- gnunet/src/psycstore/psycstore_api.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/psycstore/psycstore_api.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -186,10 +186,9 @@
  * Try again to connect to the PSYCstore service.
  *
  * @param cls handle to the PSYCstore service.
- * @param tc scheduler context
  */
 static void
-reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+reconnect (void *cls);
 
 
 /**
@@ -531,10 +530,9 @@
  * Try again to connect to the PSYCstore service.
  *
  * @param cls Handle to the PSYCstore service.
- * @param tc Scheduler context.
  */
 static void
-reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect (void *cls)
 {
   struct GNUNET_PSYCSTORE_Handle *h = cls;
 

Modified: gnunet/src/psycstore/test_psycstore.c
===================================================================
--- gnunet/src/psycstore/test_psycstore.c       2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/psycstore/test_psycstore.c       2016-04-09 23:14:03 UTC (rev 
37005)
@@ -113,10 +113,9 @@
  * Terminate the testcase (failure).
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   res = 1;
   cleanup ();
@@ -127,10 +126,9 @@
  * Terminate the testcase (success).
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-end_normally (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_normally (void *cls)
 {
   res = 0;
   cleanup ();

Modified: gnunet/src/pt/gnunet-daemon-pt.c
===================================================================
--- gnunet/src/pt/gnunet-daemon-pt.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/pt/gnunet-daemon-pt.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -800,11 +800,9 @@
  * Task run if the time to answer a DNS request via CADET is over.
  *
  * @param cls the `struct RequestContext` to abort
- * @param tc scheduler context
  */
 static void
-timeout_request (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_request (void *cls)
 {
   struct RequestContext *rc = cls;
   struct CadetExit *exit = rc->exit;
@@ -1023,11 +1021,9 @@
  * Function scheduled as very last function, cleans up after us
  *
  * @param cls closure, NULL
- * @param tskctx scheduler context, unused
  */
 static void
-cleanup (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tskctx)
+cleanup (void *cls)
 {
   struct CadetExit *exit;
 

Modified: gnunet/src/pt/test_gns_vpn.c
===================================================================
--- gnunet/src/pt/test_gns_vpn.c        2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/pt/test_gns_vpn.c        2016-04-09 23:14:03 UTC (rev 37005)
@@ -140,8 +140,7 @@
 
 
 static void
-do_shutdown (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *c)
+do_shutdown (void *cls)
 {
   if (mhd_task_id != NULL)
   {
@@ -181,8 +180,7 @@
 
 
 static void
-curl_task (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc)
+curl_task (void *cls)
 {
   curl_task_id = NULL;
   curl_main ();
@@ -264,7 +262,7 @@
 
 
 static void
-start_curl (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+start_curl (void *cls)
 {
   GNUNET_asprintf (&url,
                   "http://%s/hello_world";,
@@ -289,7 +287,7 @@
 
 
 static void
-disco_ns (void* cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+disco_ns (void* cls)
 {
   GNUNET_NAMESTORE_disconnect (namestore);
   namestore = NULL;
@@ -340,8 +338,7 @@
 
 
 static void
-mhd_task (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc)
+mhd_task (void *cls)
 {
   mhd_task_id = NULL;
   MHD_run (mhd);

Modified: gnunet/src/pt/test_gnunet_vpn.c
===================================================================
--- gnunet/src/pt/test_gnunet_vpn.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/pt/test_gnunet_vpn.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -171,8 +171,7 @@
  * Function to run the HTTP client.
  */
 static void
-curl_main (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+curl_main (void *cls)
 {
   fd_set rs;
   fd_set ws;
@@ -304,7 +303,7 @@
 
 
 static void
-mhd_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+mhd_task (void *cls)
 {
   mhd_task_id = NULL;
   MHD_run (mhd);
@@ -313,7 +312,7 @@
 
 
 static void
-ctrl_c_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+ctrl_c_shutdown (void *cls)
 {
   ctrl_c_task_id = NULL;
   do_shutdown ();

Modified: gnunet/src/regex/gnunet-daemon-regexprofiler.c
===================================================================
--- gnunet/src/regex/gnunet-daemon-regexprofiler.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/regex/gnunet-daemon-regexprofiler.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -106,10 +106,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "shutting down\n");
 
@@ -137,15 +136,16 @@
  * Announce a previously announced regex re-using cached data.
  *
  * @param cls Closure (regex to announce if needed).
- * @param tc TaskContext.
  */
 static void
-reannounce_regex (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+reannounce_regex (void *cls)
 {
+  char *regex = cls;
   struct GNUNET_TIME_Relative random_delay;
-  char *regex = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   reannounce_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     GNUNET_free (regex);

Modified: gnunet/src/regex/gnunet-regex-profiler.c
===================================================================
--- gnunet/src/regex/gnunet-regex-profiler.c    2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/regex/gnunet-regex-profiler.c    2016-04-09 23:14:03 UTC (rev 
37005)
@@ -384,10 +384,9 @@
  * Start announcing the next regex in the DHT.
  *
  * @param cls Index of the next peer in the peers array.
- * @param tc TaskContext.
  */
 static void
-announce_next_regex (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+announce_next_regex (void *cls);
 
 
 
/******************************************************************************/
@@ -399,10 +398,9 @@
  * Shutdown nicely
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   struct RegexPeer *peer;
   unsigned int peer_cnt;
@@ -471,10 +469,9 @@
  * abort task to run on test timed out
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   unsigned long i = (unsigned long) cls;
 
@@ -664,10 +661,9 @@
  * profiler, when done.
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_collect_stats (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_collect_stats (void *cls)
 {
   struct RegexPeer *peer = &peers[0];
 
@@ -694,10 +690,9 @@
  * Start searching for the next string in the DHT.
  *
  * @param cls Index of the next peer in the peers array.
- * @param tc TaskContext.
  */
 static void
-find_string (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+find_string (void *cls);
 
 
 /**
@@ -808,10 +803,9 @@
  * specified timeout 'search_timeout'.
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-search_timed_out (void *cls, const struct GNUNET_SCHEDULER_TaskContext * tc)
+search_timed_out (void *cls)
 {
   unsigned int i;
 
@@ -846,15 +840,15 @@
  * but we should start another one.
  *
  * @param cls Index of the next peer in the peers array.
- * @param tc TaskContext.
  */
 static void
-find_timed_out (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+find_timed_out (void *cls)
 {
   struct RegexPeer *p = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   p->timeout = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -870,13 +864,14 @@
  * Start searching for a string in the DHT.
  *
  * @param cls Index of the next peer in the peers array.
- * @param tc TaskContext.
  */
 static void
-find_string (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+find_string (void *cls)
 {
   unsigned int search_peer = (unsigned int) (long) cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) ||
       search_peer >= num_peers ||
       GNUNET_YES == in_shutdown)
@@ -962,7 +957,7 @@
  * @param tc the task context
  */
 static void
-do_announce (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_announce (void *cls)
 {
   unsigned int i;
 
@@ -982,13 +977,14 @@
  * Start announcing the next regex in the DHT.
  *
  * @param cls Closure (unused).
- * @param tc TaskContext.
  */
 static void
-announce_next_regex (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+announce_next_regex (void *cls)
 {
   struct RegexPeer *peer;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   if (next_search >= num_peers)

Modified: gnunet/src/regex/gnunet-regex-simulation-profiler.c
===================================================================
--- gnunet/src/regex/gnunet-regex-simulation-profiler.c 2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/regex/gnunet-regex-simulation-profiler.c 2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -271,10 +271,9 @@
  * Shutdown task.
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   shutdown_task = NULL;
   if (NULL != abort_task)
@@ -292,10 +291,9 @@
  * abort task to run on test timed out
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Aborting\n");
   abort_task = NULL;
@@ -564,10 +562,9 @@
  * Iterate over files contained in policy_dir.
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_directory_scan (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_directory_scan (void *cls)
 {
   struct GNUNET_TIME_Absolute start_time;
   struct GNUNET_TIME_Relative duration;

Modified: gnunet/src/regex/gnunet-service-regex.c
===================================================================
--- gnunet/src/regex/gnunet-service-regex.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/regex/gnunet-service-regex.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -152,11 +152,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-cleanup_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_task (void *cls)
 {
   struct ClientEntry *ce;
 
@@ -177,13 +175,11 @@
 /**
  * Periodic task to refresh our announcement of the regex.
  *
- * @param cls the 'struct ClientEntry' of the client that triggered the
+ * @param cls the `struct ClientEntry *` of the client that triggered the
  *        announcement
- * @param tc scheduler context
  */
 static void
-reannounce (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+reannounce (void *cls)
 {
   struct ClientEntry *ce = cls;
 

Modified: gnunet/src/regex/test_regex_api.c
===================================================================
--- gnunet/src/regex/test_regex_api.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/regex/test_regex_api.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -45,12 +45,11 @@
 
 static int ok = 1;
 
-static struct GNUNET_SCHEDULER_Task * die_task;
+static struct GNUNET_SCHEDULER_Task *die_task;
 
 
 static void
-end (void *cls,
-     const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   die_task = NULL;
   GNUNET_REGEX_announce_cancel (a);

Modified: gnunet/src/regex/test_regex_integration.c
===================================================================
--- gnunet/src/regex/test_regex_integration.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/regex/test_regex_integration.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -57,8 +57,7 @@
 
 
 static void
-end (void *cls,
-     const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   die_task = NULL;
   GNUNET_REGEX_announce_cancel (a4);
@@ -77,7 +76,7 @@
 end_badly ()
 {
   FPRINTF (stderr, "%s",  "Testcase failed (timeout).\n");
-  end (NULL, NULL);
+  end (NULL);
   ok = 1;
 }
 

Modified: gnunet/src/rest/gnunet-rest-server.c
===================================================================
--- gnunet/src/rest/gnunet-rest-server.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/rest/gnunet-rest-server.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -119,7 +119,7 @@
 static char* allow_headers;
 
 /**
- * MHD Connection handle 
+ * MHD Connection handle
  */
 struct MhdConnectionHandle
 {
@@ -143,11 +143,9 @@
  * Task run whenever HTTP server operations are pending.
  *
  * @param cls NULL
- * @param tc sched context
  */
 static void
-do_httpd (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc);
+do_httpd (void *cls);
 
 
 /**
@@ -179,7 +177,7 @@
   struct MhdConnectionHandle *handle = cls;
   handle->status = status;
   handle->response = resp;
-  run_mhd_now(); 
+  run_mhd_now();
 }
 
 
@@ -222,7 +220,7 @@
   struct RestConnectionDataHandle *handle = cls;
   struct GNUNET_HashCode hkey;
   char *val;
-  
+
   GNUNET_CRYPTO_hash (key, strlen (key), &hkey);
   GNUNET_asprintf (&val, "%s", value);
   if (GNUNET_OK !=
@@ -394,7 +392,7 @@
     httpd = NULL;
   }
   if (NULL != httpd_task)
-  { 
+  {
     GNUNET_SCHEDULER_cancel (httpd_task);
     httpd_task = NULL;
   }
@@ -405,11 +403,9 @@
  * Task run whenever HTTP server is idle for too long. Kill it.
  *
  * @param cls NULL
- * @param tc sched context
  */
 static void
-kill_httpd_task (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+kill_httpd_task (void *cls)
 {
   httpd_task = NULL;
   kill_httpd ();
@@ -482,11 +478,9 @@
  * Task run whenever HTTP server operations are pending.
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-do_httpd (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_httpd (void *cls)
 {
   httpd_task = NULL;
   MHD_run (httpd);
@@ -501,10 +495,10 @@
  * @param tc the scheduler context
  */
 static void
-do_accept (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_accept (void *cls)
 {
   struct GNUNET_NETWORK_Handle *lsock = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   struct GNUNET_NETWORK_Handle *s;
   int fd;
   const struct sockaddr *addr;
@@ -514,8 +508,9 @@
     ltask4 = NULL;
   else
     ltask6 = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
-    return; 
+    return;
   if (lsock == lsock4)
     ltask4 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
                                             lsock,
@@ -550,11 +545,9 @@
  * Task run on shutdown
  *
  * @param cls closure
- * @param tc task context
  */
 static void
-do_shutdown (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Shutting down...\n");
@@ -581,7 +574,7 @@
   sa4.sin_port = htons (port);
 #if HAVE_SOCKADDR_IN_SIN_LEN
   sa4.sin_len = sizeof (sa4);
-#endif 
+#endif
   ls = GNUNET_NETWORK_socket_create (AF_INET,
                                      SOCK_STREAM,
                                      0);
@@ -617,7 +610,7 @@
   sa6.sin6_port = htons (port);
 #if HAVE_SOCKADDR_IN_SIN_LEN
   sa6.sin6_len = sizeof (sa6);
-#endif 
+#endif
   ls = GNUNET_NETWORK_socket_create (AF_INET6,
                                      SOCK_STREAM,
                                      0);
@@ -685,8 +678,8 @@
  * @param c configuration
  */
 static void
-run (void *cls, 
-     char *const *args, 
+run (void *cls,
+     char *const *args,
      const char *cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *c)
 {
@@ -756,7 +749,7 @@
   {
     GNUNET_SCHEDULER_shutdown ();
     return;
-  } 
+  }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Service listens on port %u\n",
               port);

Modified: gnunet/src/revocation/gnunet-revocation.c
===================================================================
--- gnunet/src/revocation/gnunet-revocation.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/revocation/gnunet-revocation.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -84,11 +84,9 @@
  * Function run if the user aborts with CTRL-C.
  *
  * @param cls closure
- * @param tc scheduler context
  */
 static void
-do_shutdown (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != el)
   {
@@ -231,15 +229,15 @@
  * Perform the proof-of-work calculation.
  *
  * @param cls the `struct RevocationData`
- * @param tc scheduler context
  */
 static void
-calculate_pow (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+calculate_pow (void *cls)
 {
   struct RevocationData *rd = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   /* store temporary results */
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ( (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason)) ||
        (0 == (rd->pow % 128) ) )
   {

Modified: gnunet/src/revocation/gnunet-service-revocation.c
===================================================================
--- gnunet/src/revocation/gnunet-service-revocation.c   2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/revocation/gnunet-service-revocation.c   2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -521,11 +521,9 @@
  * run the set operation on the revocation certificates.
  *
  * @param cls NULL
- * @param tc scheduler context (unused)
  */
 static void
-transmit_task_cb (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+transmit_task_cb (void *cls)
 {
   struct PeerEntry *peer_entry = cls;
 
@@ -662,11 +660,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != revocation_set)
   {

Modified: gnunet/src/revocation/test_revocation.c
===================================================================
--- gnunet/src/revocation/test_revocation.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/revocation/test_revocation.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -57,8 +57,7 @@
 
 
 static void
-do_shutdown (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   unsigned int c;
 
@@ -94,8 +93,7 @@
 
 
 static void
-check_revocation (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc);
+check_revocation (void *cls);
 
 
 static void
@@ -128,8 +126,7 @@
 
 
 static void
-check_revocation (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+check_revocation (void *cls)
 {
   GNUNET_REVOCATION_query (testpeers[0].cfg,
                            &testpeers[1].pubkey,
@@ -146,7 +143,7 @@
   {
     fprintf (stderr,
              "Revocation successful\n");
-    check_revocation (NULL, NULL);
+    check_revocation (NULL);
   }
 }
 

Modified: gnunet/src/rps/gnunet-rps.c
===================================================================
--- gnunet/src/rps/gnunet-rps.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/rps/gnunet-rps.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -92,11 +92,9 @@
  * Cancels pending request and disconnects.
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-do_shutdown (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   shutdown_task = NULL;
   if (NULL != req_handle)

Modified: gnunet/src/rps/gnunet-service-rps.c
===================================================================
--- gnunet/src/rps/gnunet-service-rps.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/rps/gnunet-service-rps.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -1482,10 +1482,10 @@
 
 
 static void
-do_round (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+do_round (void *cls);
 
 static void
-do_mal_round (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+do_mal_round (void *cls);
 
 
 #ifdef ENABLE_MALICIOUS
@@ -1624,7 +1624,7 @@
  * This is executed regylary.
  */
 static void
-do_mal_round (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_mal_round (void *cls)
 {
   uint32_t num_pushes;
   uint32_t i;
@@ -1756,7 +1756,7 @@
  * This is executed regylary.
  */
 static void
-do_round (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_round (void *cls)
 {
   LOG (GNUNET_ERROR_TYPE_DEBUG, "Going to execute next round.\n");
 
@@ -2032,11 +2032,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
 
   LOG (GNUNET_ERROR_TYPE_DEBUG, "RPS is going down\n");

Modified: gnunet/src/rps/gnunet-service-rps_sampler.c
===================================================================
--- gnunet/src/rps/gnunet-service-rps_sampler.c 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/rps/gnunet-service-rps_sampler.c 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -107,8 +107,7 @@
  * Sampler.
  */
 typedef void
-(*RPS_get_peers_type) (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc);
+(*RPS_get_peers_type) (void *cls);
 
 /**
  * Get one random peer out of the sampled peers.
@@ -118,9 +117,9 @@
  * Only used internally
  */
 static void
-sampler_get_rand_peer (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc);
+sampler_get_rand_peer (void *cls);
 
+
 /**
  * Get one random peer out of the sampled peers.
  *
@@ -128,8 +127,7 @@
  * corrsponding peer to the client.
  */
 static void
-sampler_mod_get_rand_peer (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc);
+sampler_mod_get_rand_peer (void *cls);
 
 
 /**
@@ -530,14 +528,15 @@
  * Only used internally
  */
 static void
-sampler_get_rand_peer (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+sampler_get_rand_peer (void *cls)
 {
   struct GetPeerCls *gpc = cls;
   uint32_t r_index;
   struct RPS_Sampler *sampler;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   gpc->get_peer_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   sampler = gpc->req_handle->sampler;
@@ -583,15 +582,16 @@
  * corrsponding peer to the client.
  */
 static void
-sampler_mod_get_rand_peer (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+sampler_mod_get_rand_peer (void *cls)
 {
   struct GetPeerCls *gpc = cls;
   struct RPS_SamplerElement *s_elem;
   struct GNUNET_TIME_Relative last_request_diff;
   struct RPS_Sampler *sampler;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   gpc->get_peer_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   sampler = gpc->req_handle->sampler;

Modified: gnunet/src/rps/test_rps.c
===================================================================
--- gnunet/src/rps/test_rps.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/rps/test_rps.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -430,7 +430,7 @@
 
 
 /**
- * Write the ids and their according index in the given array to a file 
+ * Write the ids and their according index in the given array to a file
  * Unused
  */
 /* static void
@@ -493,7 +493,7 @@
  * Task run on timeout to shut everything down.
  */
 static void
-shutdown_op (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_op (void *cls)
 {
   unsigned int i;
 
@@ -513,11 +513,11 @@
 /**
  * Seed peers.
  */
-  void
-seed_peers (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+static void
+seed_peers (void *cls)
 {
+  struct RPSPeer *peer = cls;
   unsigned int amount;
-  struct RPSPeer *peer = (struct RPSPeer *) cls;
   unsigned int i;
 
   // TODO if malicious don't seed mal peers
@@ -532,13 +532,14 @@
   GNUNET_RPS_seed_ids (peer->rps_handle, amount, rps_peer_ids);
 }
 
+
 /**
  * Seed peers.
  */
-  void
-seed_peers_big (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+static void
+seed_peers_big (void *cls)
 {
-  struct RPSPeer *peer = (struct RPSPeer *) cls;
+  struct RPSPeer *peer = cls;
   unsigned int seed_msg_size;
   uint32_t num_peers_max;
   unsigned int amount;
@@ -740,7 +741,7 @@
               "[%s] got %" PRIu64 " peers:\n",
               GNUNET_i2s (rps_peer->peer_id),
               n);
-  
+
   for (i = 0; i < n; i++)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -762,11 +763,10 @@
  * Request random peers.
  */
 static void
-request_peers (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+request_peers (void *cls)
 {
+  struct PendingRequest *pending_req = cls;
   struct RPSPeer *rps_peer;
-  struct PendingRequest *pending_req = (struct PendingRequest *) cls;
   struct PendingReply *pending_rep;
 
   if (GNUNET_YES == in_shutdown)
@@ -827,11 +827,10 @@
  * Cancel a request.
  */
 static void
-cancel_request_cb (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+cancel_request_cb (void *cls)
 {
+  struct RPSPeer *rps_peer = cls;
   struct PendingReply *pending_rep;
-  struct RPSPeer *rps_peer = (struct RPSPeer *) cls;
 
   if (GNUNET_YES == in_shutdown)
     return;
@@ -1137,8 +1136,9 @@
   }
 }
 
+
 static void
-churn (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+churn (void *cls)
 {
   unsigned int i;
   unsigned int j;

Modified: gnunet/src/scalarproduct/gnunet-scalarproduct.c
===================================================================
--- gnunet/src/scalarproduct/gnunet-scalarproduct.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/scalarproduct/gnunet-scalarproduct.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -184,8 +184,7 @@
  * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   if (NULL != computation)
   {

Modified: gnunet/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c
===================================================================
--- gnunet/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c   
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c   
2016-04-09 23:14:03 UTC (rev 37005)
@@ -1092,8 +1092,7 @@
  * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Shutting down, initiating cleanup.\n");

Modified: gnunet/src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c
===================================================================
--- gnunet/src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c     
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c     
2016-04-09 23:14:03 UTC (rev 37005)
@@ -1137,11 +1137,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Shutting down, initiating cleanup.\n");

Modified: gnunet/src/scalarproduct/gnunet-service-scalarproduct_alice.c
===================================================================
--- gnunet/src/scalarproduct/gnunet-service-scalarproduct_alice.c       
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/scalarproduct/gnunet-service-scalarproduct_alice.c       
2016-04-09 23:14:03 UTC (rev 37005)
@@ -1313,11 +1313,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Shutting down, initiating cleanup.\n");

Modified: gnunet/src/scalarproduct/gnunet-service-scalarproduct_bob.c
===================================================================
--- gnunet/src/scalarproduct/gnunet-service-scalarproduct_bob.c 2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/scalarproduct/gnunet-service-scalarproduct_bob.c 2016-04-09 
23:14:03 UTC (rev 37005)
@@ -1433,11 +1433,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Shutting down, initiating cleanup.\n");

Modified: gnunet/src/secretsharing/gnunet-secretsharing-profiler.c
===================================================================
--- gnunet/src/secretsharing/gnunet-secretsharing-profiler.c    2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/secretsharing/gnunet-secretsharing-profiler.c    2016-04-09 
23:14:03 UTC (rev 37005)
@@ -480,11 +480,9 @@
  * Signature of the main function of a task.
  *
  * @param cls closure
- * @param tc context information (why was this task triggered now)
  */
 static void
-handle_shutdown (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+handle_shutdown (void *cls)
 {
   in_shutdown = GNUNET_YES;
 
@@ -633,4 +631,3 @@
                      options, &run, NULL, GNUNET_YES);
   return 0;
 }
-

Modified: gnunet/src/secretsharing/gnunet-service-secretsharing.c
===================================================================
--- gnunet/src/secretsharing/gnunet-service-secretsharing.c     2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/secretsharing/gnunet-service-secretsharing.c     2016-04-09 
23:14:03 UTC (rev 37005)
@@ -703,7 +703,7 @@
  * @param tc unused
  */
 static void
-cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_task (void *cls)
 {
   while (NULL != decrypt_sessions_head)
     decrypt_session_destroy (decrypt_sessions_head);
@@ -2274,4 +2274,3 @@
           GNUNET_SERVICE_run (argc, argv, "secretsharing",
                               GNUNET_SERVICE_OPTION_NONE, &run, NULL)) ? 0 : 1;
 }
-

Modified: gnunet/src/secretsharing/test_secretsharing_api.c
===================================================================
--- gnunet/src/secretsharing/test_secretsharing_api.c   2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/secretsharing/test_secretsharing_api.c   2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -47,9 +47,9 @@
   GNUNET_SCHEDULER_shutdown ();
 }
 
+
 static void
-handle_shutdown (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext * tc)
+handle_shutdown (void *cls)
 {
   if (NULL != keygen)
   {
@@ -58,12 +58,13 @@
   }
 }
 
+
 static void
 run (void *cls,
      const struct GNUNET_CONFIGURATION_Handle *cfg,
      struct GNUNET_TESTING_Peer *peer)
 {
-  struct GNUNET_HashCode session_id; 
+  struct GNUNET_HashCode session_id;
   struct GNUNET_TIME_Absolute start;
   struct GNUNET_TIME_Absolute deadline;
 
@@ -100,4 +101,3 @@
     return ret;
   return (GNUNET_YES == success) ? 0 : 1;
 }
-

Modified: gnunet/src/set/gnunet-service-set.c
===================================================================
--- gnunet/src/set/gnunet-service-set.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/set/gnunet-service-set.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -1713,8 +1713,7 @@
  * @param tc context information (why was this task triggered now)
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   while (NULL != incoming_head)
     incoming_destroy (incoming_head);
@@ -1747,13 +1746,14 @@
  * @param tc context information (why was this task triggered now)
  */
 static void
-incoming_timeout_cb (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+incoming_timeout_cb (void *cls)
 {
   struct Operation *incoming = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   incoming->timeout_task = NULL;
   GNUNET_assert (GNUNET_YES == incoming->is_incoming);
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,

Modified: gnunet/src/set/gnunet-set-profiler.c
===================================================================
--- gnunet/src/set/gnunet-set-profiler.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/set/gnunet-set-profiler.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -247,8 +247,7 @@
 
 
 static void
-handle_shutdown (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+handle_shutdown (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Shutting down set profiler\n");
@@ -393,4 +392,3 @@
                      options, &pre_run, NULL, GNUNET_YES);
   return ret;
 }
-

Modified: gnunet/src/set/set_api.c
===================================================================
--- gnunet/src/set/set_api.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/set/set_api.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -275,12 +275,12 @@
 
   LOG (GNUNET_ERROR_TYPE_DEBUG,
        "Handling response to lazy copy\n");
-  
+
   GNUNET_CONTAINER_DLL_remove (set->copy_req_head,
                                set->copy_req_tail,
                                req);
 
-  
+
   // We pass none as operation here, since it doesn't matter when
   // cloning.
   new_set = create_internal (set->cfg, GNUNET_SET_OPERATION_NONE, 
&msg->cookie);
@@ -790,11 +790,9 @@
  * Connect to the set service in order to listen for requests.
  *
  * @param cls the `struct GNUNET_SET_ListenHandle *` to connect
- * @param tc task context if invoked as a task, NULL otherwise
  */
 static void
-listen_connect (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc);
+listen_connect (void *cls);
 
 
 /**
@@ -882,11 +880,9 @@
  * Connect to the set service in order to listen for requests.
  *
  * @param cls the `struct GNUNET_SET_ListenHandle *` to connect
- * @param tc task context if invoked as a task, NULL otherwise
  */
 static void
-listen_connect (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+listen_connect (void *cls)
 {
   static const struct GNUNET_MQ_MessageHandler mq_handlers[] = {
     { &handle_request, GNUNET_MESSAGE_TYPE_SET_REQUEST },
@@ -895,9 +891,10 @@
   struct GNUNET_SET_ListenHandle *lh = cls;
   struct GNUNET_MQ_Envelope *mqm;
   struct GNUNET_SET_ListenMessage *msg;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
-  if ( (NULL != tc) &&
-       (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) )
+  tc = GNUNET_SCHEDULER_get_task_context ();
+  if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG,
          "Listener not reconnecting due to shutdown\n");
@@ -947,7 +944,7 @@
   lh->operation = operation;
   lh->app_id = *app_id;
   lh->reconnect_backoff = GNUNET_TIME_UNIT_MILLISECONDS;
-  listen_connect (lh, NULL);
+  listen_connect (lh);
   if (NULL == lh->client)
   {
     GNUNET_free (lh);

Modified: gnunet/src/set/test_set_api.c
===================================================================
--- gnunet/src/set/test_set_api.c       2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/set/test_set_api.c       2016-04-09 23:14:03 UTC (rev 37005)
@@ -246,12 +246,13 @@
  * Signature of the main function of a task.
  *
  * @param cls closure
- * @param tc context information (why was this task triggered now)
  */
 static void
-timeout_fail (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_fail (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_SCHEDULER_shutdown ();
@@ -316,4 +317,3 @@
   }
   return ret;
 }
-

Modified: gnunet/src/set/test_set_union_copy.c
===================================================================
--- gnunet/src/set/test_set_union_copy.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/set/test_set_union_copy.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -73,12 +73,13 @@
  * Signature of the main function of a task.
  *
  * @param cls closure
- * @param tc context information (why was this task triggered now)
  */
 static void
-timeout_fail (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_fail (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_SCHEDULER_shutdown ();

Modified: gnunet/src/set/test_set_union_result_symmetric.c
===================================================================
--- gnunet/src/set/test_set_union_result_symmetric.c    2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/set/test_set_union_result_symmetric.c    2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -293,12 +293,13 @@
  * Signature of the main function of a task.
  *
  * @param cls closure
- * @param tc context information (why was this task triggered now)
  */
 static void
-timeout_fail (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_fail (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_SCHEDULER_shutdown ();

Modified: gnunet/src/social/gnunet-service-social.c
===================================================================
--- gnunet/src/social/gnunet-service-social.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/social/gnunet-service-social.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -421,8 +421,10 @@
                              struct MessageTransmitQueue *tmit_msg);
 
 
-int
-place_entry_cleanup (void *cls, const struct GNUNET_HashCode *key, void *value)
+static int
+place_entry_cleanup (void *cls,
+                     const struct GNUNET_HashCode *key,
+                     void *value)
 {
   cleanup_place (value);
   return GNUNET_YES;
@@ -433,10 +435,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GNUNET_CONTAINER_multihashmap_iterate (hosts, place_entry_cleanup, NULL);
   GNUNET_CONTAINER_multihashmap_iterate (guests, place_entry_cleanup, NULL);
@@ -541,7 +542,7 @@
 
 
 static void
-schedule_cleanup_place (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+schedule_cleanup_place (void *cls)
 {
   cleanup_place (cls);
 }

Modified: gnunet/src/social/test_social.c
===================================================================
--- gnunet/src/social/test_social.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/social/test_social.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -149,8 +149,9 @@
 
 
 static void
-schedule_guest_leave (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc);
+schedule_guest_leave (void *cls);
 
+
 static void
 host_answer_door (void *cls,
                   struct GNUNET_SOCIAL_Nym *nym,
@@ -229,10 +230,9 @@
  * Terminate the test case (failure).
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   res = 1;
   cleanup ();
@@ -244,10 +244,9 @@
  * Terminate the test case (success).
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-end_normally (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_normally (void *cls)
 {
   res = 0;
   cleanup ();
@@ -274,7 +273,7 @@
 
 
 static void
-transmit_resume (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+transmit_resume (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Transmission resumed.\n");
   struct TransmitClosure *tmit = cls;
@@ -342,7 +341,7 @@
 
 
 static void
-schedule_host_leave (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+schedule_host_leave (void *cls)
 {
   test = TEST_HOST_LEAVE;
   GNUNET_SOCIAL_host_leave (hst, NULL, &host_left, NULL);
@@ -478,7 +477,7 @@
 
 
 static void
-schedule_reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+schedule_reconnect (void *cls)
 {
   test = TEST_RECONNECT;
 
@@ -577,7 +576,7 @@
 
 
 static void
-schedule_guest_leave (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+schedule_guest_leave (void *cls)
 {
   guest_leave ();
 }

Modified: gnunet/src/statistics/gnunet-service-statistics.c
===================================================================
--- gnunet/src/statistics/gnunet-service-statistics.c   2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/statistics/gnunet-service-statistics.c   2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -967,11 +967,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   in_shutdown = GNUNET_YES;
   if (0 != client_count)

Modified: gnunet/src/statistics/gnunet-statistics.c
===================================================================
--- gnunet/src/statistics/gnunet-statistics.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/statistics/gnunet-statistics.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -158,11 +158,9 @@
  * Function run on shutdown to clean up.
  *
  * @param cls the statistics handle
- * @param tc scheduler context
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct GNUNET_STATISTICS_Handle *h = cls;
 
@@ -185,8 +183,7 @@
  * @param tc schedueler context
  */
 static void
-main_task (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+main_task (void *cls)
 {
   const struct GNUNET_CONFIGURATION_Handle *cfg = cls;
   struct GNUNET_STATISTICS_Handle *h;

Modified: gnunet/src/statistics/statistics_api.c
===================================================================
--- gnunet/src/statistics/statistics_api.c      2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/statistics/statistics_api.c      2016-04-09 23:14:03 UTC (rev 
37005)
@@ -462,11 +462,9 @@
  * We've waited long enough, reconnect now.
  *
  * @param cls the `struct GNUNET_STATISTICS_Handle` to reconnect
- * @param tc scheduler context (unused)
  */
 static void
-reconnect_task (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_task (void *cls)
 {
   struct GNUNET_STATISTICS_Handle *h = cls;
 
@@ -479,11 +477,9 @@
  * Task used by 'reconnect_later' to shutdown the handle
  *
  * @param cls the statistics handle
- * @param tc scheduler context
  */
 static void
-do_destroy (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_destroy (void *cls)
 {
   struct GNUNET_STATISTICS_Handle *h = cls;
 
@@ -627,11 +623,9 @@
  * Task used to destroy the statistics handle.
  *
  * @param cls the `struct GNUNET_STATISTICS_Handle`
- * @param tc the scheduler context
  */
 static void
-destroy_task (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+destroy_task (void *cls)
 {
   struct GNUNET_STATISTICS_Handle *h = cls;
 
@@ -1159,11 +1153,9 @@
  * call the continuation.
  *
  * @param cls the `struct GNUNET_STATISTICS_GetHandle`
- * @param tc scheduler context
  */
 static void
-run_get_timeout (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_get_timeout (void *cls)
 {
   struct GNUNET_STATISTICS_GetHandle *gh = cls;
   GNUNET_STATISTICS_Callback cont = gh->cont;

Modified: gnunet/src/statistics/test_statistics_api_watch.c
===================================================================
--- gnunet/src/statistics/test_statistics_api_watch.c   2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/statistics/test_statistics_api_watch.c   2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -33,11 +33,11 @@
 
 static struct GNUNET_STATISTICS_Handle *h2;
 
-static struct GNUNET_SCHEDULER_Task * shutdown_task;
+static struct GNUNET_SCHEDULER_Task *shutdown_task;
 
 
 static void
-force_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+force_shutdown (void *cls)
 {
   fprintf (stderr, "Timeout, failed to receive notifications: %d\n", ok);
   GNUNET_STATISTICS_destroy (h, GNUNET_NO);
@@ -47,7 +47,7 @@
 
 
 static void
-normal_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+normal_shutdown (void *cls)
 {
   GNUNET_STATISTICS_destroy (h, GNUNET_NO);
   GNUNET_STATISTICS_destroy (h2, GNUNET_NO);

Modified: gnunet/src/statistics/test_statistics_api_watch_zero_value.c
===================================================================
--- gnunet/src/statistics/test_statistics_api_watch_zero_value.c        
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/statistics/test_statistics_api_watch_zero_value.c        
2016-04-09 23:14:03 UTC (rev 37005)
@@ -33,11 +33,11 @@
 
 static struct GNUNET_STATISTICS_Handle *h2;
 
-static struct GNUNET_SCHEDULER_Task * shutdown_task;
+static struct GNUNET_SCHEDULER_Task *shutdown_task;
 
 
 static void
-force_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+force_shutdown (void *cls)
 {
   fprintf (stderr, "Timeout, failed to receive notifications: %d\n", ok);
   GNUNET_STATISTICS_destroy (h, GNUNET_NO);
@@ -47,7 +47,7 @@
 
 
 static void
-normal_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+normal_shutdown (void *cls)
 {
   GNUNET_STATISTICS_destroy (h, GNUNET_NO);
   GNUNET_STATISTICS_destroy (h2, GNUNET_NO);

Modified: gnunet/src/template/gnunet-service-template.c
===================================================================
--- gnunet/src/template/gnunet-service-template.c       2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/template/gnunet-service-template.c       2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -31,10 +31,9 @@
  * Task run during shutdown.
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup_task (void *cls)
 {
   /* FIXME: do clean up here */
 }

Modified: gnunet/src/testbed/gnunet-daemon-latency-logger.c
===================================================================
--- gnunet/src/testbed/gnunet-daemon-latency-logger.c   2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/gnunet-daemon-latency-logger.c   2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -131,11 +131,10 @@
  * Shutdown
  *
  * @param cls NULL
- * @param tc task context from scheduler
  * @return
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   shutdown_task = NULL;
   GNUNET_ATS_performance_done (ats);

Modified: gnunet/src/testbed/gnunet-daemon-testbed-blacklist.c
===================================================================
--- gnunet/src/testbed/gnunet-daemon-testbed-blacklist.c        2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/testbed/gnunet-daemon-testbed-blacklist.c        2016-04-09 
23:14:03 UTC (rev 37005)
@@ -121,10 +121,9 @@
  * Shutdown task to cleanup our resources and exit.
  *
  * @param cls NULL
- * @param tc scheduler task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   cleanup_map ();
   if (NULL != bh)

Modified: gnunet/src/testbed/gnunet-daemon-testbed-underlay.c
===================================================================
--- gnunet/src/testbed/gnunet-daemon-testbed-underlay.c 2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/gnunet-daemon-testbed-underlay.c 2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -286,10 +286,9 @@
  * Shutdown task to cleanup our resources and exit.
  *
  * @param cls NULL
- * @param tc scheduler task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != transport)
   {

Modified: gnunet/src/testbed/gnunet-helper-testbed.c
===================================================================
--- gnunet/src/testbed/gnunet-helper-testbed.c  2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/testbed/gnunet-helper-testbed.c  2016-04-09 23:14:03 UTC (rev 
37005)
@@ -156,10 +156,9 @@
  * Task to shut down cleanly
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   LOG_DEBUG ("Shutting down\n");
   shutdown_task_id = NULL;
@@ -219,16 +218,17 @@
  * Task to write to the standard out
  *
  * @param cls the WriteContext
- * @param tc the TaskContext
  */
 static void
-write_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+write_task (void *cls)
 {
   struct WriteContext *wc = cls;
   ssize_t bytes_wrote;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   GNUNET_assert (NULL != wc);
   write_task_id = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
   {
     GNUNET_free (wc->data);
@@ -263,10 +263,9 @@
  * process died).
  *
  * @param cls closure, NULL if we need to self-restart
- * @param tc context
  */
 static void
-child_death_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+child_death_task (void *cls)
 {
   const struct GNUNET_DISK_FileHandle *pr;
   char c[16];
@@ -273,9 +272,11 @@
   enum GNUNET_OS_ProcessStatusType type;
   unsigned long code;
   int ret;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ);
   child_death_task_id = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 == (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY))
   {
     child_death_task_id =
@@ -518,15 +519,16 @@
  * Task to read from stdin
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-read_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+read_task (void *cls)
 {
   char buf[GNUNET_SERVER_MAX_MESSAGE_SIZE];
   ssize_t sread;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   read_task_id = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
   sread = GNUNET_DISK_file_read (stdin_fd, buf, sizeof (buf));

Modified: gnunet/src/testbed/gnunet-service-test-barriers.c
===================================================================
--- gnunet/src/testbed/gnunet-service-test-barriers.c   2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/gnunet-service-test-barriers.c   2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -46,10 +46,9 @@
  * Dummy task callback to keep us running forever
  *
  * @param cls NULL
- * @param tc scheduler task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != wh)
     GNUNET_TESTBED_barrier_wait_cancel (wh);
@@ -80,12 +79,14 @@
  * Task to wait for the barrier
  *
  * @param cls NULL
- * @param tc scheduler task context
  * @return
  */
 static void
-do_wait (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_wait (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
   wh = GNUNET_TESTBED_barrier_wait (TEST_BARRIER_NAME, &barrier_wait_cb, NULL);

Modified: gnunet/src/testbed/gnunet-service-testbed-logger.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed-logger.c  2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/gnunet-service-testbed-logger.c  2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -119,10 +119,9 @@
  * Task to clean up and shutdown nicely
  *
  * @param cls NULL
- * @param tc the TaskContext from scheduler
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct MessageQueue *mq_entry;
 
@@ -155,7 +154,7 @@
  * @param client identification of the client; NULL
  *        for the last call when the server is destroyed
  */
-static void 
+static void
 client_disconnected (void *cls, struct GNUNET_SERVER_Client *client)
 {
   if (NULL == client)

Modified: gnunet/src/testbed/gnunet-service-testbed.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed.c 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/testbed/gnunet-service-testbed.c 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -405,11 +405,9 @@
  * Task to free resources when forwarded operation has been timedout
  *
  * @param cls the ForwardedOperationContext
- * @param tc the task context from scheduler
  */
 void
-GST_forwarded_operation_timeout (void *cls,
-                                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+GST_forwarded_operation_timeout (void *cls)
 {
   struct ForwardedOperationContext *fopc = cls;
 
@@ -776,10 +774,9 @@
  * Task to clean up and shutdown nicely
  *
  * @param cls NULL
- * @param tc the TaskContext from scheduler
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct MessageQueue *mq_entry;
   uint32_t id;

Modified: gnunet/src/testbed/gnunet-service-testbed.h
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed.h 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/testbed/gnunet-service-testbed.h 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -590,8 +590,7 @@
  * @param tc the task context from scheduler
  */
 void
-GST_forwarded_operation_timeout (void *cls,
-                                 const struct GNUNET_SCHEDULER_TaskContext 
*tc);
+GST_forwarded_operation_timeout (void *cls);
 
 
 /**

Modified: gnunet/src/testbed/gnunet-service-testbed_barriers.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed_barriers.c        2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/testbed/gnunet-service-testbed_barriers.c        2016-04-09 
23:14:03 UTC (rev 37005)
@@ -672,10 +672,9 @@
  * subcontrollers to barrier init message
  *
  * @param cls barrier
- * @param tc scheduler task context
  */
 static void
-fwd_tout_barrier_init (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+fwd_tout_barrier_init (void *cls)
 {
   struct Barrier *barrier = cls;
 

Modified: gnunet/src/testbed/gnunet-service-testbed_connectionpool.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed_connectionpool.c  2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/testbed/gnunet-service-testbed_connectionpool.c  2016-04-09 
23:14:03 UTC (rev 37005)
@@ -333,11 +333,9 @@
  * Expire a #PooledConnection object
  *
  * @param cls the #PooledConnection object
- * @param tc scheduler task context
  */
 static void
-expire (void *cls,
-        const struct GNUNET_SCHEDULER_TaskContext *tc)
+expire (void *cls)
 {
   struct PooledConnection *entry = cls;
 
@@ -429,10 +427,9 @@
  * further schedules itself if there are similar waiting objects which can be 
notified.
  *
  * @param cls the #PooledConnection object
- * @param tc the task context from scheduler
  */
 static void
-connection_ready (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+connection_ready (void *cls)
 {
   struct PooledConnection *entry = cls;
   struct GST_ConnectionPool_GetHandle *gh;

Modified: gnunet/src/testbed/gnunet-service-testbed_cpustatus.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed_cpustatus.c       2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/testbed/gnunet-service-testbed_cpustatus.c       2016-04-09 
23:14:03 UTC (rev 37005)
@@ -646,7 +646,7 @@
 
 
 static void
-sample_load_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+sample_load_task (void *cls)
 {
   struct GNUNET_TIME_Absolute now;
   char *str;
@@ -655,8 +655,10 @@
   int ld_disk;
   unsigned int mem_usage;
   unsigned int nproc;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   sample_load_task_id = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
   ld_cpu = cpu_get_load ();

Modified: gnunet/src/testbed/gnunet-service-testbed_links.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed_links.c   2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/gnunet-service-testbed_links.c   2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -585,10 +585,9 @@
  * The  Link Controller forwarding task
  *
  * @param cls the LCFContext
- * @param tc the Task context from scheduler
  */
 static void
-lcf_proc_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+lcf_proc_task (void *cls);
 
 
 /**
@@ -634,10 +633,9 @@
  * The  Link Controller forwarding task
  *
  * @param cls the LCFContext
- * @param tc the Task context from scheduler
  */
 static void
-lcf_proc_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+lcf_proc_task (void *cls);
 
 
 /**
@@ -644,11 +642,9 @@
  * Task to free resources when forwarded link controllers has been timedout
  *
  * @param cls the LCFContext
- * @param tc the task context from scheduler
  */
 static void
-lcf_forwarded_operation_timeout (void *cls,
-                                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+lcf_forwarded_operation_timeout (void *cls)
 {
   struct LCFContext *lcf = cls;
 
@@ -668,10 +664,9 @@
  * The  Link Controller forwarding task
  *
  * @param cls the LCFContext
- * @param tc the Task context from scheduler
  */
 static void
-lcf_proc_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+lcf_proc_task (void *cls)
 {
   struct LCFContext *lcf = cls;
   struct LCFContextQueue *lcfq;
@@ -852,11 +847,9 @@
  * neighbour
  *
  * @param cls the neighbour
- * @param tc scheduler task context
  */
 static void
-neighbour_connect_notify_task (void *cls,
-                               const struct GNUNET_SCHEDULER_TaskContext *tc)
+neighbour_connect_notify_task (void *cls)
 {
   struct Neighbour *n = cls;
   struct NeighbourConnectNotification *h;
@@ -1118,11 +1111,9 @@
  * Task to be run upon timeout while attempting to connect to the neighbour
  *
  * @param cls the NeighbourConnectCtxt created in GST_handle_link_controllers()
- * @param tc the scheduler task context
  */
 static void
-timeout_neighbour_connect (void *cls,
-                           const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_neighbour_connect (void *cls)
 {
  struct NeighbourConnectCtxt *ncc = cls;
 

Modified: gnunet/src/testbed/gnunet-service-testbed_oc.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed_oc.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/gnunet-service-testbed_oc.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -362,12 +362,9 @@
  * Timeout task for cancelling a forwarded overlay connect connect
  *
  * @param cls the ForwardedOverlayConnectContext
- * @param tc the task context from the scheduler
  */
 static void
-forwarded_overlay_connect_timeout (void *cls,
-                                   const struct GNUNET_SCHEDULER_TaskContext
-                                   *tc)
+forwarded_overlay_connect_timeout (void *cls)
 {
   struct ForwardedOperationContext *fopc = cls;
   struct RegisteredHostContext *rhc;
@@ -379,7 +376,7 @@
   LOG_DEBUG ("Overlay linking between peers %u and %u failed\n", focc->peer1,
              focc->peer2);
   GST_cleanup_focc (focc);
-  GST_forwarded_operation_timeout (fopc, tc);
+  GST_forwarded_operation_timeout (fopc);
   if (NULL != rhc->focc_dll_head)
     GST_process_next_focc (rhc);
 }
@@ -573,11 +570,9 @@
  * Task for cleaing up overlay connect context structure
  *
  * @param cls the overlay connect context
- * @param tc the task context
  */
 static void
-do_cleanup_occ (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_cleanup_occ (void *cls)
 {
   struct OverlayConnectContext *occ = cls;
 
@@ -590,11 +585,9 @@
  * Task which will be run when overlay connect request has been timed out
  *
  * @param cls the OverlayConnectContext
- * @param tc the TaskContext
  */
 static void
-timeout_overlay_connect (void *cls,
-                         const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_overlay_connect (void *cls)
 {
   struct OverlayConnectContext *occ = cls;
 
@@ -777,29 +770,27 @@
  * peer 1.
  *
  * @param cls the OverlayConnectContext
- * @param tc the TaskContext from scheduler
  */
 static void
-send_hello (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc);
+send_hello (void *cls);
 
 
 /**
- * Task that is run when hello has been sent
+ * Task that is run when hello has been sent If tc->reason =
+ * #GNUNET_SCHEDULER_REASON_TIMEOUT then sending HELLO failed; if
+ * #GNUNET_SCHEDULER_REASON_READ_READY is succeeded
  *
  * @param cls the overlay connect context
- * @param tc the scheduler task context; if tc->reason =
- *          #GNUNET_SCHEDULER_REASON_TIMEOUT then sending HELLO failed; if
- *          #GNUNET_SCHEDULER_REASON_READ_READY is succeeded
  */
 static void
-occ_hello_sent_cb (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc)
+occ_hello_sent_cb (void *cls)
 {
   struct OverlayConnectContext *occ = cls;
   struct LocalPeer2Context *lp2c;
   struct Peer *peer2;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   GNUNET_assert (OCC_TYPE_LOCAL == occ->type);
   GNUNET_assert (NULL != occ->timeout_task);
   lp2c = &occ->p2ctx.local;
@@ -881,18 +872,18 @@
  * send_hello_thru_rocc()
  *
  * @param cls the OverlayConnectContext
- * @param tc the TaskContext from scheduler
  */
 static void
-send_hello (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+send_hello (void *cls)
 {
   struct OverlayConnectContext *occ = cls;
   struct LocalPeer2Context *lp2c;
   char *other_peer_str;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   occ->send_hello_task = NULL;
   GNUNET_assert (NULL != occ->timeout_task);
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   GNUNET_assert (NULL != occ->hello);
@@ -1652,11 +1643,9 @@
  * Task to timeout rocc and cleanit up
  *
  * @param cls the RemoteOverlayConnectCtx
- * @param tc the TaskContext from scheduler
  */
 static void
-timeout_rocc_task (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_rocc_task (void *cls)
 {
   struct RemoteOverlayConnectCtx *rocc = cls;
 
@@ -1698,26 +1687,23 @@
  * whose identity is in RemoteOverlayConnectCtx
  *
  * @param cls the RemoteOverlayConnectCtx
- * @param tc the TaskContext from scheduler
  */
 static void
-attempt_connect_task (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc);
+attempt_connect_task (void *cls);
 
 
 /**
- * Task that is run when hello has been sent
+ * Task that is run when hello has been sent If tc->reason =
+ * #GNUNET_SCHEDULER_REASON_TIMEOUT then sending HELLO failed; if
+ * #GNUNET_SCHEDULER_REASON_READ_READY is succeeded
  *
  * @param cls the overlay connect context
- * @param tc the scheduler task context; if tc->reason =
- *          #GNUNET_SCHEDULER_REASON_TIMEOUT then sending HELLO failed; if
- *          #GNUNET_SCHEDULER_REASON_READ_READY is succeeded
  */
 static void
-rocc_hello_sent_cb (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+rocc_hello_sent_cb (void *cls)
 {
   struct RemoteOverlayConnectCtx *rocc = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   rocc->ohh = NULL;
   GNUNET_assert (NULL == rocc->attempt_connect_task_id);
@@ -1725,6 +1711,7 @@
              rocc->op_id,
              GNUNET_i2s (&rocc->a_id),
              rocc->peer->id);
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (GNUNET_SCHEDULER_REASON_TIMEOUT == tc->reason)
   {
     GNUNET_break (0);
@@ -1754,11 +1741,9 @@
  * whose identity is in RemoteOverlayConnectCtx
  *
  * @param cls the RemoteOverlayConnectCtx
- * @param tc the TaskContext from scheduler
  */
 static void
-attempt_connect_task (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc)
+attempt_connect_task (void *cls)
 {
   struct RemoteOverlayConnectCtx *rocc = cls;
 

Modified: gnunet/src/testbed/gnunet-service-testbed_peers.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed_peers.c   2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/gnunet-service-testbed_peers.c   2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -211,16 +211,14 @@
  * timed out
  *
  * @param cls the FowardedOperationContext
- * @param tc the TaskContext from the scheduler
  */
 static void
-peer_create_forward_timeout (void *cls,
-                             const struct GNUNET_SCHEDULER_TaskContext *tc)
+peer_create_forward_timeout (void *cls)
 {
   struct ForwardedOperationContext *fopc = cls;
 
   GNUNET_free (fopc->cls);
-  GST_forwarded_operation_timeout (fopc, tc);
+  GST_forwarded_operation_timeout (fopc);
 }
 
 

Modified: gnunet/src/testbed/gnunet-testbed-profiler.c
===================================================================
--- gnunet/src/testbed/gnunet-testbed-profiler.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/gnunet-testbed-profiler.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -107,10 +107,9 @@
  * Shutdown nicely
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   shutdown_task = NULL;
   if (NULL != abort_task)
@@ -131,10 +130,9 @@
  * abort task to run on test timed out
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   LOG (GNUNET_ERROR_TYPE_WARNING, "Aborting\n");
   abort_task = NULL;

Modified: gnunet/src/testbed/gnunet_testbed_mpi_spawn.c
===================================================================
--- gnunet/src/testbed/gnunet_testbed_mpi_spawn.c       2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/gnunet_testbed_mpi_spawn.c       2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -74,7 +74,7 @@
  * The shutdown task
  */
 static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   shutdown_task_id = NULL;
   if (0 != child_exit_code)
@@ -96,7 +96,7 @@
 
 
 static void
-terminate_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+terminate_task (void *cls)
 {
   static int hard_kill;
 
@@ -131,16 +131,18 @@
  * process died).
  *
  * @param cls closure, NULL if we need to self-restart
- * @param tc context
  */
 static void
-child_death_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+child_death_task (void *cls)
 {
   const struct GNUNET_DISK_FileHandle *pr;
   char c[16];
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+
   pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ);
   child_death_task_id = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 == (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY))
   {
     child_death_task_id =
@@ -179,10 +181,9 @@
  * The main scheduler run task
  *
  * @param cls NULL
- * @param tc scheduler task context
  */
 static void
-run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+run (void *cls)
 {
   struct GNUNET_TESTBED_Host **hosts;
   const struct GNUNET_CONFIGURATION_Handle *null_cfg;

Modified: gnunet/src/testbed/test_gnunet_helper_testbed.c
===================================================================
--- gnunet/src/testbed/test_gnunet_helper_testbed.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/test_gnunet_helper_testbed.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -80,10 +80,9 @@
  * Shutdown nicely
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != abort_task)
     GNUNET_SCHEDULER_cancel (abort_task);
@@ -99,10 +98,9 @@
  * abort task to run on test timed out
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   abort_task = NULL;
   LOG (GNUNET_ERROR_TYPE_WARNING, "Test timedout -- Aborting\n");
@@ -118,9 +116,9 @@
  * Continuation function.
  *
  * @param cls closure
- * @param result GNUNET_OK on success,
- *               GNUNET_NO if helper process died
- *               GNUNET_SYSERR during GNUNET_HELPER_stop
+ * @param result #GNUNET_OK on success,
+ *               #GNUNET_NO if helper process died
+ *               #GNUNET_SYSERR during GNUNET_HELPER_stop()
  */
 static void
 cont_cb (void *cls, int result)
@@ -141,7 +139,7 @@
  * @param client identification of the client
  * @param message the actual message
  *
- * @return GNUNET_OK on success, GNUNET_SYSERR to stop further processing
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR to stop further processing
  */
 static int
 mst_cb (void *cls, void *client, const struct GNUNET_MessageHeader *message)

Modified: gnunet/src/testbed/test_testbed_api.c
===================================================================
--- gnunet/src/testbed/test_testbed_api.c       2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/testbed/test_testbed_api.c       2016-04-09 23:14:03 UTC (rev 
37005)
@@ -136,7 +136,7 @@
  * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   LOG (GNUNET_ERROR_TYPE_DEBUG, "Shutting down...\n");
   if (NULL != abort_task)
@@ -178,11 +178,11 @@
  * @param tc the task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   LOG (GNUNET_ERROR_TYPE_WARNING, "Test timedout -- Aborting\n");
   abort_task = NULL;
-  do_shutdown (cls, tc);
+  do_shutdown (cls);
 }
 
 

Modified: gnunet/src/testbed/test_testbed_api_2peers_1controller.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_2peers_1controller.c    2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/testbed/test_testbed_api_2peers_1controller.c    2016-04-09 
23:14:03 UTC (rev 37005)
@@ -186,10 +186,9 @@
  * Shutdown nicely
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != abort_task)
     GNUNET_SCHEDULER_cancel (abort_task);
@@ -210,14 +209,13 @@
  * abort task to run on test timed out
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   LOG (GNUNET_ERROR_TYPE_WARNING, "Test timedout -- Aborting\n");
   abort_task = NULL;
-  do_shutdown (cls, tc);
+  do_shutdown (cls);
 }
 
 
@@ -237,10 +235,9 @@
  * task for delaying a connect
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_delayed_connect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_delayed_connect (void *cls)
 {
   delayed_connect_task = NULL;
   FAIL_TEST (NULL == common_operation);

Modified: gnunet/src/testbed/test_testbed_api_3peers_3controllers.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_3peers_3controllers.c   2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/testbed/test_testbed_api_3peers_3controllers.c   2016-04-09 
23:14:03 UTC (rev 37005)
@@ -254,10 +254,9 @@
  * Shutdown nicely
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != abort_task)
     GNUNET_SCHEDULER_cancel (abort_task);
@@ -288,10 +287,9 @@
  * abort task to run on test timed out
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   LOG (GNUNET_ERROR_TYPE_WARNING, "Test timedout -- Aborting\n");
   abort_task = NULL;
@@ -300,7 +298,7 @@
     GNUNET_SCHEDULER_cancel (delayed_connect_task);
     delayed_connect_task = NULL;
   }
-  do_shutdown (cls, tc);
+  do_shutdown (cls);
 }
 
 static void
@@ -328,10 +326,9 @@
  * task for delaying a connect
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_delayed_connect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_delayed_connect (void *cls)
 {
   delayed_connect_task = NULL;
   if (NULL != common_operation)

Modified: gnunet/src/testbed/test_testbed_api_barriers.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_barriers.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/test_testbed_api_barriers.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -62,10 +62,9 @@
  * Shutdown this test case when it takes too long
  *
  * @param cls NULL
- * @param tc scheduler task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   shutdown_task = NULL;
   if (NULL != barrier)

Modified: gnunet/src/testbed/test_testbed_api_controllerlink.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_controllerlink.c        2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/testbed/test_testbed_api_controllerlink.c        2016-04-09 
23:14:03 UTC (rev 37005)
@@ -300,7 +300,7 @@
       if (NULL != abort_task)               \
         GNUNET_SCHEDULER_cancel (abort_task);                   \
       abort_task = NULL;                    \
-      GNUNET_SCHEDULER_add_now (do_shutdown, NULL);             \
+      GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);             \
       return;                                                   \
     }                                                          \
   } while (0)
@@ -310,10 +310,9 @@
  * Shutdown nicely
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != abort_task)
     GNUNET_SCHEDULER_cancel (abort_task);
@@ -349,14 +348,13 @@
  * abort task to run on test timed out
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   LOG (GNUNET_ERROR_TYPE_WARNING, "Aborting\n");
   abort_task = NULL;
-  do_shutdown (cls, tc);
+  do_shutdown (cls);
 }
 
 
@@ -392,7 +390,7 @@
  * @return
  */
 static void
-delay_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+delay_task (void *cls)
 {
   delay_task_id = NULL;
   switch (result)
@@ -644,8 +642,8 @@
     result = SUCCESS;
     GNUNET_TESTBED_operation_done (op);
     op = NULL;
-    GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
-                                  (GNUNET_TIME_UNIT_SECONDS, 1), &do_shutdown,
+    GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+                                  &do_shutdown,
                                   NULL);
     break;
   default:

Modified: gnunet/src/testbed/test_testbed_api_hosts.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_hosts.c 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/testbed/test_testbed_api_hosts.c 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -67,10 +67,9 @@
  * The shutdown task
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   GNUNET_TESTBED_host_destroy (host);
   while (0 != num_hosts)

Modified: gnunet/src/testbed/test_testbed_api_operations.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_operations.c    2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/test_testbed_api_operations.c    2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -262,10 +262,9 @@
  * Task to simulate artificial delay and change the test stage
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-step (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+step (void *cls)
 {
   GNUNET_assert (NULL != step_task);
   step_task = NULL;

Modified: gnunet/src/testbed/test_testbed_api_peer_reconfiguration.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_peer_reconfiguration.c  2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/testbed/test_testbed_api_peer_reconfiguration.c  2016-04-09 
23:14:03 UTC (rev 37005)
@@ -89,10 +89,9 @@
  * Abort task
  *
  * @param cls NULL
- * @param tc scheduler task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Aborting\n");
   abort_task = NULL;

Modified: gnunet/src/testbed/test_testbed_api_peers_manage_services.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_peers_manage_services.c 2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/testbed/test_testbed_api_peers_manage_services.c 2016-04-09 
23:14:03 UTC (rev 37005)
@@ -103,10 +103,9 @@
  * Abort task
  *
  * @param cls NULL
- * @param tc scheduler task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Aborting\n");
   abort_task = NULL;

Modified: gnunet/src/testbed/test_testbed_api_statistics.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_statistics.c    2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/test_testbed_api_statistics.c    2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -87,10 +87,9 @@
  * Abort task
  *
  * @param cls NULL
- * @param tc scheduler task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Test timed out -- Aborting\n");
   abort_task = NULL;

Modified: gnunet/src/testbed/test_testbed_api_test.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_test.c  2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/testbed/test_testbed_api_test.c  2016-04-09 23:14:03 UTC (rev 
37005)
@@ -70,10 +70,9 @@
  * Shutdown nicely
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   shutdown_task = NULL;
   if (NULL != abort_task)
@@ -93,7 +92,7 @@
         GNUNET_SCHEDULER_cancel (abort_task);                           \
       abort_task = NULL;                            \
       if (NULL == shutdown_task)                    \
-        shutdown_task = GNUNET_SCHEDULER_add_now (do_shutdown, NULL);   \
+        shutdown_task = GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);   \
       return;                                                           \
     }                                                                   \
   } while (0)
@@ -103,16 +102,15 @@
  * abort task to run on test timed out
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   LOG (GNUNET_ERROR_TYPE_WARNING, "Test timedout -- Aborting\n");
   abort_task = NULL;
   if (NULL != shutdown_task)
     GNUNET_SCHEDULER_cancel (shutdown_task);
-  do_shutdown (cls, tc);
+  do_shutdown (cls);
 }
 
 

Modified: gnunet/src/testbed/test_testbed_api_testbed_run.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_testbed_run.c   2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/test_testbed_api_testbed_run.c   2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -68,10 +68,9 @@
  * Shutdown nicely
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != abort_task)
     GNUNET_SCHEDULER_cancel (abort_task);
@@ -83,10 +82,9 @@
  * abort task to run on test timed out
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Test timedout -- Aborting\n");
   abort_task = NULL;

Modified: gnunet/src/testbed/test_testbed_api_topology.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_topology.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/test_testbed_api_topology.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -63,10 +63,9 @@
  * Shutdown nicely
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   shutdown_task = NULL;
   if (NULL != op)

Modified: gnunet/src/testbed/test_testbed_api_topology_clique.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_topology_clique.c       2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/testbed/test_testbed_api_topology_clique.c       2016-04-09 
23:14:03 UTC (rev 37005)
@@ -63,10 +63,9 @@
  * Shutdown nicely
  *
  * @param cls NULL
- * @param tc the task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   shutdown_task = NULL;
   if (NULL != op)

Modified: gnunet/src/testbed/test_testbed_logger_api.c
===================================================================
--- gnunet/src/testbed/test_testbed_logger_api.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testbed/test_testbed_logger_api.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -97,7 +97,7 @@
 
 
 static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
 {
   LOG (GNUNET_ERROR_TYPE_WARNING, "Aborting\n");
   abort_task = NULL;
@@ -173,7 +173,7 @@
 
 
 static void
-do_write (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_write (void *cls)
 {
   static int i;
   char buf[BSIZE];

Modified: gnunet/src/testbed/test_testbed_underlay.c
===================================================================
--- gnunet/src/testbed/test_testbed_underlay.c  2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/testbed/test_testbed_underlay.c  2016-04-09 23:14:03 UTC (rev 
37005)
@@ -49,7 +49,7 @@
  * @param tc scheduler task context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   if (NULL != op)
     GNUNET_TESTBED_operation_done (op);

Modified: gnunet/src/testbed/testbed_api_hosts.c
===================================================================
--- gnunet/src/testbed/testbed_api_hosts.c      2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/testbed/testbed_api_hosts.c      2016-04-09 23:14:03 UTC (rev 
37005)
@@ -1259,10 +1259,9 @@
  * Task for checking whether a host is habitable or not
  *
  * @param cls GNUNET_TESTBED_HostHabitableCheckHandle
- * @param tc the scheduler task context
  */
 static void
-habitability_check (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+habitability_check (void *cls)
 {
   struct GNUNET_TESTBED_HostHabitableCheckHandle *h = cls;
   void *cb_cls;

Modified: gnunet/src/testbed/testbed_api_operations.c
===================================================================
--- gnunet/src/testbed/testbed_api_operations.c 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/testbed/testbed_api_operations.c 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -549,10 +549,9 @@
  * the ready queue.
  *
  * @param cls NULL
- * @param tc scheduler task context.  Not used.
  */
 static void
-process_rq_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+process_rq_task (void *cls)
 {
   struct GNUNET_TESTBED_Operation *op;
   struct OperationQueue *queue;

Modified: gnunet/src/testbed/testbed_api_statistics.c
===================================================================
--- gnunet/src/testbed/testbed_api_statistics.c 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/testbed/testbed_api_statistics.c 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -150,10 +150,9 @@
  * get_statistics operation.
  *
  * @param cls the GetStatsContext
- * @param tc the scheduler task context
  */
 static void
-call_completion_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+call_completion_task (void *cls)
 {
   struct GetStatsContext *sc = cls;
 
@@ -169,10 +168,9 @@
  * as we cannot destroy the statistics handle in iteration_completion_cb()
  *
  * @param cls the PeerGetStatsContext
- * @param tc the scheduler task context
  */
 static void
-op_done_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+op_done_task (void *cls)
 {
   struct PeerGetStatsContext *peer_sc = cls;
   struct GetStatsContext *sc;

Modified: gnunet/src/testbed/testbed_api_testbed.c
===================================================================
--- gnunet/src/testbed/testbed_api_testbed.c    2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/testbed/testbed_api_testbed.c    2016-04-09 23:14:03 UTC (rev 
37005)
@@ -611,10 +611,9 @@
  * Task run upon interrupts (SIGINT, SIGTERM) and upon scheduler shutdown.
  *
  * @param cls the RunContext which has to be acted upon
- * @param tc the scheduler task context
  */
 static void
-interrupt (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+interrupt (void *cls)
 {
   struct GNUNET_TESTBED_RunHandle *rc = cls;
   struct GNUNET_TESTBED_Controller *c = rc->c;
@@ -661,10 +660,9 @@
  * Task for starting peers
  *
  * @param cls the RunHandle
- * @param tc the task context from scheduler
  */
 static void
-start_peers_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+start_peers_task (void *cls)
 {
   struct GNUNET_TESTBED_RunHandle *rc = cls;
   struct RunContextOperation *rcop;
@@ -966,10 +964,9 @@
  * Task to register all hosts available in the global host list
  *
  * @param cls the RunContext
- * @param tc the scheduler task context
  */
 static void
-register_hosts (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+register_hosts (void *cls);
 
 
 /**
@@ -999,10 +996,9 @@
  * Task to register all hosts available in the global host list
  *
  * @param cls RunContext
- * @param tc the scheduler task context
  */
 static void
-register_hosts (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+register_hosts (void *cls)
 {
   struct GNUNET_TESTBED_RunHandle *rc = cls;
   struct RunContextOperation *rcop;
@@ -1194,15 +1190,15 @@
  * Task run upon timeout while setting up the testbed
  *
  * @param cls the RunContext
- * @param tc the task context
  */
 static void
-timeout_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_task (void *cls)
 {
   struct GNUNET_TESTBED_RunHandle *rc = cls;
 
   rc->timeout_task = NULL;
-  LOG (GNUNET_ERROR_TYPE_ERROR, _("Shutting down testbed due to timeout while 
setup.\n"));
+  LOG (GNUNET_ERROR_TYPE_ERROR,
+       _("Shutting down testbed due to timeout while setup.\n"));
    GNUNET_SCHEDULER_shutdown ();
    if (NULL != rc->test_master)
      rc->test_master (rc->test_master_cls, rc, 0, NULL, 0, 0);

Modified: gnunet/src/testbed/testbed_logger_api.c
===================================================================
--- gnunet/src/testbed/testbed_logger_api.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/testbed/testbed_logger_api.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -170,10 +170,9 @@
  * Task to call the flush completion notification
  *
  * @param cls the logger handle
- * @param tc the scheduler task context
  */
 static void
-call_flush_completion (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+call_flush_completion (void *cls)
 {
   struct GNUNET_TESTBED_LOGGER_Handle *h = cls;
   GNUNET_TESTBED_LOGGER_FlushCompletion cb;
@@ -416,10 +415,9 @@
  * be called with 0 as the amount of data sent.
  *
  * @param cls the logger handle
- * @param tc scheduler task context
  */
 static void
-timeout_flush (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_flush (void *cls)
 {
   struct GNUNET_TESTBED_LOGGER_Handle *h = cls;
   GNUNET_TESTBED_LOGGER_FlushCompletion cb;

Modified: gnunet/src/testing/gnunet-testing.c
===================================================================
--- gnunet/src/testing/gnunet-testing.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/testing/gnunet-testing.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -197,10 +197,9 @@
  * Removes the temporary file.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-cleanup (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup (void *cls)
 {
   if (NULL != tmpfilename)
   {
@@ -224,14 +223,15 @@
  * Called whenever we can read stdin non-blocking
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-stdin_cb (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+stdin_cb (void *cls)
 {
   int c;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   tid = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
   GNUNET_assert (0 != (GNUNET_SCHEDULER_REASON_READ_READY & tc->reason));

Modified: gnunet/src/testing/test_testing_peerstartup.c
===================================================================
--- gnunet/src/testing/test_testing_peerstartup.c       2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testing/test_testing_peerstartup.c       2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -63,10 +63,9 @@
  * Task for shutdown
  *
  * @param cls the testing context
- * @param tc the tast context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   struct TestingContext *test_ctx = cls;
 

Modified: gnunet/src/testing/test_testing_peerstartup2.c
===================================================================
--- gnunet/src/testing/test_testing_peerstartup2.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testing/test_testing_peerstartup2.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -83,7 +83,7 @@
 
 
 static void
-do_shutdown2 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown2 (void *cls)
 {
   struct TestingContext *test_ctx = cls;
 
@@ -102,10 +102,9 @@
  * Task for shutdown
  *
  * @param cls the testing context
- * @param tc the tast context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+do_shutdown (void *cls);
 
 
 static void
@@ -133,10 +132,9 @@
  * Task for shutdown
  *
  * @param cls the testing context
- * @param tc the tast context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   struct TestingContext *test_ctx = cls;
 
@@ -149,7 +147,7 @@
                                                test_ctx));
   }
   else
-    do_shutdown2 (test_ctx, tc);
+    do_shutdown2 (test_ctx);
 }
 
 

Modified: gnunet/src/testing/test_testing_sharedservices.c
===================================================================
--- gnunet/src/testing/test_testing_sharedservices.c    2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/testing/test_testing_sharedservices.c    2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -64,10 +64,9 @@
  * Task for shutdown
  *
  * @param cls the testing context
- * @param tc the tast context
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
   struct TestingContext *test_ctx = cls;
   struct GNUNET_TESTING_Peer *peer;

Modified: gnunet/src/testing/testing.c
===================================================================
--- gnunet/src/testing/testing.c        2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/testing/testing.c        2016-04-09 23:14:03 UTC (rev 37005)
@@ -1654,11 +1654,9 @@
  * Callback to be called when SCHEDULER has been started
  *
  * @param cls the ServiceContext
- * @param tc the TaskContext
  */
 static void
-service_run_main (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+service_run_main (void *cls)
 {
   struct ServiceContext *sc = cls;
 

Modified: gnunet/src/topology/gnunet-daemon-topology.c
===================================================================
--- gnunet/src/topology/gnunet-daemon-topology.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/topology/gnunet-daemon-topology.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -506,19 +506,19 @@
  * peer and ask for it.
  *
  * @param cls for which peer to schedule the HELLO
- * @param tc task context
  */
 static void
-schedule_next_hello (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+schedule_next_hello (void *cls)
 {
   struct Peer *pl = cls;
   struct FindAdvHelloContext fah;
   size_t next_want;
   struct GNUNET_TIME_Relative delay;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   pl->hello_delay_task = NULL;
   GNUNET_assert (GNUNET_YES == pl->is_connected);
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;                     /* we're out of here */
   if (pl->hello_req != NULL)
@@ -669,11 +669,9 @@
  * Add peers and schedule connection attempt
  *
  * @param cls unused, NULL
- * @param tc scheduler context
  */
 static void
-add_peer_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+add_peer_task (void *cls)
 {
   add_task = NULL;
 
@@ -1133,11 +1131,9 @@
  * the transport and core.
  *
  * @param cls unused, NULL
- * @param tc scheduler context
  */
 static void
-cleaning_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleaning_task (void *cls)
 {
   if (NULL != peerinfo_notify)
   {

Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/gnunet-service-transport.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -250,11 +250,9 @@
  * Task to asynchronously terminate a session.
  *
  * @param cls the `struct GNUNET_ATS_SessionKiller` with the information for 
the kill
- * @param tc scheduler context
  */
 static void
-kill_session_task (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc)
+kill_session_task (void *cls)
 {
   struct GNUNET_ATS_SessionKiller *sk = cls;
 
@@ -756,11 +754,9 @@
  * and cancels pending validations.
  *
  * @param cls closure, unused
- * @param tc task context (unused)
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   GST_neighbours_stop ();
   GST_plugins_unload ();

Modified: gnunet/src/transport/gnunet-service-transport_ats.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_ats.c 2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/gnunet-service-transport_ats.c 2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -294,11 +294,9 @@
  * suggest it again.
  *
  * @param cls the `struct AddressInfo` of the address to unblock
- * @param tc unused
  */
 static void
-unblock_address (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+unblock_address (void *cls)
 {
   struct AddressInfo *ai = cls;
 

Modified: gnunet/src/transport/gnunet-service-transport_blacklist.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_blacklist.c   2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/gnunet-service-transport_blacklist.c   2016-04-09 
23:14:03 UTC (rev 37005)
@@ -205,11 +205,9 @@
  * Perform next action in the blacklist check.
  *
  * @param cls the `struct BlacklistCheck*`
- * @param tc unused
  */
 static void
-do_blacklist_check (void *cls, 
-                   const struct GNUNET_SCHEDULER_TaskContext *tc);
+do_blacklist_check (void *cls);
 
 
 /**
@@ -395,7 +393,7 @@
  * @return number of bytes copied to @a buf
  */
 static size_t
-transmit_blacklist_message (void *cls, 
+transmit_blacklist_message (void *cls,
                            size_t size,
                            void *buf)
 {
@@ -416,7 +414,7 @@
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Sending blacklist test for peer `%s' to client %p\n",
-              GNUNET_i2s (&bc->peer), 
+              GNUNET_i2s (&bc->peer),
              bc->bl_pos->client);
   bl = bc->bl_pos;
   bm.header.size = htons (sizeof (struct BlacklistMessage));
@@ -424,7 +422,7 @@
   bm.is_allowed = htonl (0);
   bm.peer = bc->peer;
   memcpy (buf,
-         &bm, 
+         &bm,
          sizeof (bm));
   if (GNUNET_YES == bl->call_receive_done)
   {
@@ -442,11 +440,9 @@
  * Perform next action in the blacklist check.
  *
  * @param cls the `struct GST_BlacklistCheck *`
- * @param tc unused
  */
 static void
-do_blacklist_check (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_blacklist_check (void *cls)
 {
   struct GST_BlacklistCheck *bc = cls;
   struct Blacklisters *bl;
@@ -459,7 +455,7 @@
                 "No other blacklist clients active, will allow neighbour 
`%s'\n",
                 GNUNET_i2s (&bc->peer));
 
-    bc->cont (bc->cont_cls, 
+    bc->cont (bc->cont_cls,
              &bc->peer,
              bc->address,
              bc->session,
@@ -475,7 +471,7 @@
       GNUNET_SERVER_notify_transmit_ready (bl->client,
                                            sizeof (struct BlacklistMessage),
                                            GNUNET_TIME_UNIT_FOREVER_REL,
-                                           &transmit_blacklist_message, 
+                                           &transmit_blacklist_message,
                                           bc);
 }
 
@@ -501,7 +497,7 @@
   if (GNUNET_OK == allowed)
     return;                     /* we're done */
   GNUNET_STATISTICS_update (GST_stats,
-                            gettext_noop ("# disconnects due to blacklist"), 
+                            gettext_noop ("# disconnects due to blacklist"),
                            1,
                             GNUNET_NO);
   GST_neighbours_force_disconnect (peer);
@@ -666,7 +662,7 @@
       GNUNET_CONTAINER_DLL_remove (bc_head,
                                   bc_tail,
                                   bc);
-      bc->cont (bc->cont_cls, 
+      bc->cont (bc->cont_cls,
                &bc->peer,
                bc->address,
                bc->session,
@@ -687,7 +683,7 @@
                                  GNUNET_OK);
       bl->call_receive_done = GNUNET_NO;
       bc->bl_pos = bl->next;
-      bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check, 
+      bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check,
                                           bc);
     }
   }
@@ -695,7 +691,7 @@
   for (bc = bc_head; bc != NULL; bc = bc->next)
     if ((bc->bl_pos == bl) && (NULL == bc->task))
     {
-      bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check, 
+      bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check,
                                           bc);
       break;
     }
@@ -749,7 +745,7 @@
   struct GST_BlacklistCheck *bc;
   struct GST_BlacklistCheck *n;
 
-  n = bc_head; 
+  n = bc_head;
   while (NULL != (bc = n))
   {
     n = bc->next;
@@ -853,7 +849,7 @@
     /* Disallowed by config, disapprove instantly */
     GNUNET_STATISTICS_update (GST_stats,
                               gettext_noop ("# disconnects due to blacklist"),
-                              1, 
+                              1,
                              GNUNET_NO);
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
                 _("Disallowing connection to peer `%s' on transport %s\n"),
@@ -860,8 +856,8 @@
                GNUNET_i2s (peer),
                 (NULL != transport_name) ? transport_name : "unspecified");
     if (NULL != cont)
-      cont (cont_cls,      
-           peer, 
+      cont (cont_cls,
+           peer,
            address,
            session,
            GNUNET_NO);
@@ -886,7 +882,7 @@
 
   /* need to query blacklist clients */
   bc = GNUNET_new (struct GST_BlacklistCheck);
-  GNUNET_CONTAINER_DLL_insert (bc_head, 
+  GNUNET_CONTAINER_DLL_insert (bc_head,
                               bc_tail,
                               bc);
   bc->peer = *peer;

Modified: gnunet/src/transport/gnunet-service-transport_hello.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_hello.c       2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/gnunet-service-transport_hello.c       2016-04-09 
23:14:03 UTC (rev 37005)
@@ -172,11 +172,9 @@
  * all of the transports.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-refresh_hello_task (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+refresh_hello_task (void *cls)
 {
   struct GeneratorContext gc;
 
@@ -243,7 +241,7 @@
   hello_cb = cb;
   hello_cb_cls = cb_cls;
   friend_option = friend_only;
-  refresh_hello_task (NULL, NULL);
+  refresh_hello_task (NULL);
 }
 
 

Modified: gnunet/src/transport/gnunet-service-transport_manipulation.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_manipulation.c        
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/gnunet-service-transport_manipulation.c        
2016-04-09 23:14:03 UTC (rev 37005)
@@ -224,11 +224,9 @@
  * message.
  *
  * @param cls the `struct DelayQueueEntry` to transmit
- * @param tc unused
  */
 static void
-send_delayed (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+send_delayed (void *cls)
 {
   struct DelayQueueEntry *dqe = cls;
   struct DelayQueueEntry *next;

Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c  2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c  2016-04-09 
23:14:03 UTC (rev 37005)
@@ -695,11 +695,9 @@
  * clean up after disconnect).
  *
  * @param cls the `struct NeighbourMapEntry` for which we are running
- * @param tc scheduler context (unused)
  */
 static void
-master_task (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc);
+master_task (void *cls);
 
 
 /**
@@ -2814,11 +2812,9 @@
  * Task transmitting utilization in a regular interval
  *
  * @param cls the 'struct NeighbourMapEntry' for which we are running
- * @param tc scheduler context (unused)
  */
 static void
-utilization_transmission (void *cls,
-                          const struct GNUNET_SCHEDULER_TaskContext *tc)
+utilization_transmission (void *cls)
 {
   util_transmission_tk = NULL;
   GNUNET_CONTAINER_multipeermap_iterate (neighbours,
@@ -2883,11 +2879,9 @@
  * clean up after disconnect).
  *
  * @param cls the 'struct NeighbourMapEntry' for which we are running
- * @param tc scheduler context (unused)
  */
 static void
-master_task (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+master_task (void *cls)
 {
   struct NeighbourMapEntry *n = cls;
   struct GNUNET_TIME_Relative delay;
@@ -3448,11 +3442,9 @@
  * Task to asynchronously run #free_neighbour().
  *
  * @param cls the `struct NeighbourMapEntry` to free
- * @param tc unused
  */
 static void
-delayed_disconnect (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext* tc)
+delayed_disconnect (void *cls)
 {
   struct NeighbourMapEntry *n = cls;
 

Modified: gnunet/src/transport/gnunet-service-transport_validation.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_validation.c  2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/gnunet-service-transport_validation.c  2016-04-09 
23:14:03 UTC (rev 37005)
@@ -463,11 +463,9 @@
  * longer valid and then possibly triggers its removal.
  *
  * @param cls the `struct ValidationEntry`
- * @param tc scheduler context (unused)
  */
 static void
-timeout_hello_validation (void *cls,
-                          const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_hello_validation (void *cls)
 {
   struct ValidationEntry *ve = cls;
   struct GNUNET_TIME_Absolute max;
@@ -652,11 +650,9 @@
  * Do address validation again to keep address valid.
  *
  * @param cls the `struct ValidationEntry`
- * @param tc scheduler context (unused)
  */
 static void
-revalidate_address (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+revalidate_address (void *cls)
 {
   struct ValidationEntry *ve = cls;
   struct GNUNET_TIME_Relative canonical_delay;

Modified: gnunet/src/transport/gnunet-transport-profiler.c
===================================================================
--- gnunet/src/transport/gnunet-transport-profiler.c    2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/gnunet-transport-profiler.c    2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -161,11 +161,9 @@
  * Stops monitoring activity.
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct Iteration *icur;
   struct Iteration *inext;

Modified: gnunet/src/transport/gnunet-transport.c
===================================================================
--- gnunet/src/transport/gnunet-transport.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/transport/gnunet-transport.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -487,11 +487,9 @@
  * Stops monitoring activity.
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct GNUNET_TIME_Relative duration;
   struct ValidationResolutionContext *cur;
@@ -598,8 +596,7 @@
  * We are done, shut down.
  */
 static void
-operation_timeout (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc)
+operation_timeout (void *cls)
 {
   struct PeerResolutionContext *cur;
   struct PeerResolutionContext *next;

Modified: gnunet/src/transport/plugin_transport_http_client.c
===================================================================
--- gnunet/src/transport/plugin_transport_http_client.c 2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/plugin_transport_http_client.c 2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -557,8 +557,7 @@
  * @param tc gnunet scheduler task context
  */
 static void
-client_run (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc);
+client_run (void *cls);
 
 
 /**
@@ -997,11 +996,9 @@
  * is the delayed task that actually disconnects the PUT.
  *
  * @param cls the `struct GNUNET_ATS_Session *` with the put
- * @param tc scheduler context
  */
 static void
-client_put_disconnect (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+client_put_disconnect (void *cls)
 {
   struct GNUNET_ATS_Session *s = cls;
 
@@ -1128,15 +1125,15 @@
  * Wake up a curl handle which was suspended
  *
  * @param cls the session
- * @param tc task context
  */
 static void
-client_wake_up (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+client_wake_up (void *cls)
 {
   struct GNUNET_ATS_Session *s = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   s->recv_wakeup_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   LOG (GNUNET_ERROR_TYPE_DEBUG,
@@ -1293,11 +1290,9 @@
  * Task performing curl operations
  *
  * @param cls plugin as closure
- * @param tc scheduler task context
  */
 static void
-client_run (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+client_run (void *cls)
 {
   struct HTTP_Client_Plugin *plugin = cls;
   int running;
@@ -1306,8 +1301,10 @@
   CURLMsg *msg;
   int put_request; /* GNUNET_YES if easy handle is put, GNUNET_NO for get */
   int msgs_left;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   plugin->client_perform_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
 
@@ -1963,11 +1960,9 @@
  * Session was idle, so disconnect it
  *
  * @param cls the `struct GNUNET_ATS_Session` of the idle session
- * @param tc scheduler context
  */
 static void
-client_session_timeout (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+client_session_timeout (void *cls)
 {
   struct GNUNET_ATS_Session *s = cls;
   struct GNUNET_TIME_Relative left;

Modified: gnunet/src/transport/plugin_transport_http_server.c
===================================================================
--- gnunet/src/transport/plugin_transport_http_server.c 2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/plugin_transport_http_server.c 2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -491,14 +491,14 @@
  * Wake up an MHD connection which was suspended
  *
  * @param cls the session
- * @param tc task context
  */
 static void
-server_wake_up (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+server_wake_up (void *cls)
 {
   struct GNUNET_ATS_Session *s = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   s->recv_wakeup_task = NULL;
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
@@ -641,11 +641,9 @@
  * Session was idle, so disconnect it
  *
  * @param cls the session
- * @param tc task context
  */
 static void
-server_session_timeout (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+server_session_timeout (void *cls)
 {
   struct GNUNET_ATS_Session *s = cls;
   struct GNUNET_TIME_Relative left;
@@ -910,15 +908,15 @@
  * and schedule the next run.
  *
  * @param cls plugin as closure
- * @param tc task context
  */
 static void
-server_v4_run (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+server_v4_run (void *cls)
 {
   struct HTTP_Server_Plugin *plugin = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   plugin->server_v4_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   plugin->server_v4_immediately = GNUNET_NO;
@@ -932,15 +930,15 @@
  * and schedule the next run.
  *
  * @param cls plugin as closure
- * @param tc task context
  */
 static void
-server_v6_run (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+server_v6_run (void *cls)
 {
   struct HTTP_Server_Plugin *plugin = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   plugin->server_v6_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   plugin->server_v6_immediately = GNUNET_NO;
@@ -2844,11 +2842,9 @@
  * Notify server about our external hostname
  *
  * @param cls plugin
- * @param tc task context (unused)
  */
 static void
-server_notify_external_hostname (void *cls,
-                                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+server_notify_external_hostname (void *cls)
 {
   struct HTTP_Server_Plugin *plugin = cls;
   struct HttpAddress *ext_addr;
@@ -2855,8 +2851,10 @@
   size_t ext_addr_len;
   unsigned int urlen;
   char *url;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   plugin->notify_ext_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
 

Modified: gnunet/src/transport/plugin_transport_tcp.c
===================================================================
--- gnunet/src/transport/plugin_transport_tcp.c 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/transport/plugin_transport_tcp.c 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -957,11 +957,9 @@
  * Session was idle for too long, so disconnect it
  *
  * @param cls the `struct GNUNET_ATS_Session` of the idle session
- * @param tc scheduler context
  */
 static void
-session_timeout (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+session_timeout (void *cls)
 {
   struct GNUNET_ATS_Session *s = cls;
   struct GNUNET_TIME_Relative left;
@@ -1457,11 +1455,9 @@
  * Task cleaning up a NAT connection attempt after timeout
  *
  * @param cls the `struct GNUNET_ATS_Session`
- * @param tc scheduler context (unused)
  */
 static void
-nat_connect_timeout (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+nat_connect_timeout (void *cls)
 {
   struct GNUNET_ATS_Session *session = cls;
 
@@ -1500,11 +1496,9 @@
  * receiving from the TCP client now.
  *
  * @param cls the `struct GNUNET_ATS_Session *`
- * @param tc task context (unused)
  */
 static void
-delayed_done (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+delayed_done (void *cls)
 {
   struct GNUNET_ATS_Session *session = cls;
 

Modified: gnunet/src/transport/plugin_transport_udp.c
===================================================================
--- gnunet/src/transport/plugin_transport_udp.c 2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/transport/plugin_transport_udp.c 2016-04-09 23:14:03 UTC (rev 
37005)
@@ -728,11 +728,9 @@
  * Then reschedule this function to be called again once more is available.
  *
  * @param cls the plugin handle
- * @param tc the scheduling context (for rescheduling this function again)
  */
 static void
-udp_plugin_select_v4 (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc);
+udp_plugin_select_v4 (void *cls);
 
 
 /**
@@ -741,11 +739,9 @@
  * Then reschedule this function to be called again once more is available.
  *
  * @param cls the plugin handle
- * @param tc the scheduling context (for rescheduling this function again)
  */
 static void
-udp_plugin_select_v6 (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc);
+udp_plugin_select_v6 (void *cls);
 
 
 /**
@@ -2566,11 +2562,9 @@
  * Session was idle, so disconnect it.
  *
  * @param cls the `struct GNUNET_ATS_Session` to time out
- * @param tc scheduler context
  */
 static void
-session_timeout (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+session_timeout (void *cls)
 {
   struct GNUNET_ATS_Session *s = cls;
   struct Plugin *plugin = s->plugin;
@@ -3516,14 +3510,14 @@
  * Then reschedule this function to be called again once more is available.
  *
  * @param cls the plugin handle
- * @param tc the scheduling context
  */
 static void
-udp_plugin_select_v4 (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc)
+udp_plugin_select_v4 (void *cls)
 {
   struct Plugin *plugin = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   plugin->select_task_v4 = NULL;
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
@@ -3546,14 +3540,14 @@
  * Then reschedule this function to be called again once more is available.
  *
  * @param cls the plugin handle
- * @param tc the scheduling context
  */
 static void
-udp_plugin_select_v6 (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc)
+udp_plugin_select_v6 (void *cls)
 {
   struct Plugin *plugin = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   plugin->select_task_v6 = NULL;
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;

Modified: gnunet/src/transport/plugin_transport_udp_broadcasting.c
===================================================================
--- gnunet/src/transport/plugin_transport_udp_broadcasting.c    2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/plugin_transport_udp_broadcasting.c    2016-04-09 
23:14:03 UTC (rev 37005)
@@ -232,8 +232,7 @@
 
 
 static void
-udp_ipv4_broadcast_send (void *cls,
-                         const struct GNUNET_SCHEDULER_TaskContext *tc)
+udp_ipv4_broadcast_send (void *cls)
 {
   struct BroadcastAddress *baddr = cls;
   struct Plugin *plugin = baddr->plugin;
@@ -308,8 +307,7 @@
 
 
 static void
-udp_ipv6_broadcast_send (void *cls,
-                         const struct GNUNET_SCHEDULER_TaskContext *tc)
+udp_ipv6_broadcast_send (void *cls)
 {
   struct BroadcastAddress *baddr = cls;
   struct Plugin *plugin = baddr->plugin;

Modified: gnunet/src/transport/plugin_transport_unix.c
===================================================================
--- gnunet/src/transport/plugin_transport_unix.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/plugin_transport_unix.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -498,11 +498,9 @@
  * Session was idle for too long, so disconnect it
  *
  * @param cls the `struct GNUNET_ATS_Session *` to disconnect
- * @param tc scheduler context
  */
 static void
-session_timeout (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+session_timeout (void *cls)
 {
   struct GNUNET_ATS_Session *session = cls;
   struct GNUNET_TIME_Relative left;
@@ -1225,14 +1223,14 @@
  * Then reschedule this function to be called again once more is available.
  *
  * @param cls the plugin handle
- * @param tc the scheduling context
  */
 static void
-unix_plugin_select_read (void *cls,
-                         const struct GNUNET_SCHEDULER_TaskContext *tc)
+unix_plugin_select_read (void *cls)
 {
   struct Plugin *plugin = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   plugin->read_task = NULL;
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
@@ -1250,14 +1248,14 @@
  * Then reschedule this function to be called again once more is available.
  *
  * @param cls the plugin handle
- * @param tc the scheduling context
  */
 static void
-unix_plugin_select_write (void *cls,
-                         const struct GNUNET_SCHEDULER_TaskContext *tc)
+unix_plugin_select_write (void *cls)
 {
   struct Plugin *plugin = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   plugin->write_task = NULL;
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
@@ -1617,11 +1615,9 @@
  * Notify transport service about address
  *
  * @param cls the plugin
- * @param tc unused
  */
 static void
-address_notification (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+address_notification (void *cls)
 {
   struct Plugin *plugin = cls;
   struct GNUNET_HELLO_Address *address;

Modified: gnunet/src/transport/plugin_transport_wlan.c
===================================================================
--- gnunet/src/transport/plugin_transport_wlan.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/plugin_transport_wlan.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -828,11 +828,9 @@
  * A session is timing out.  Clean up.
  *
  * @param cls pointer to the Session
- * @param tc unused
  */
 static void
-session_timeout (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+session_timeout (void *cls)
 {
   struct GNUNET_ATS_Session *session = cls;
   struct GNUNET_TIME_Relative left;
@@ -1072,11 +1070,9 @@
  * A FragmentMessage has timed out.  Remove it.
  *
  * @param cls pointer to the 'struct FragmentMessage'
- * @param tc unused
  */
 static void
-fragmentmessage_timeout (void *cls,
-                         const struct GNUNET_SCHEDULER_TaskContext *tc)
+fragmentmessage_timeout (void *cls)
 {
   struct FragmentMessage *fm = cls;
 
@@ -1200,11 +1196,9 @@
  * A MAC endpoint is timing out.  Clean up.
  *
  * @param cls pointer to the `struct MacEndpoint *`
- * @param tc pointer to the GNUNET_SCHEDULER_TaskContext
  */
 static void
-macendpoint_timeout (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+macendpoint_timeout (void *cls)
 {
   struct MacEndpoint *endpoint = cls;
   struct GNUNET_TIME_Relative timeout;
@@ -1681,11 +1675,9 @@
  * Task to (periodically) send a HELLO beacon
  *
  * @param cls pointer to the plugin struct
- * @param tc scheduler context
  */
 static void
-send_hello_beacon (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+send_hello_beacon (void *cls)
 {
   struct Plugin *plugin = cls;
   uint16_t size;

Modified: gnunet/src/transport/test_plugin_transport.c
===================================================================
--- gnunet/src/transport/test_plugin_transport.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/test_plugin_transport.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -184,7 +184,7 @@
 
 
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   struct AddressWrapper *w;
   int c = 0;
@@ -255,7 +255,7 @@
 }
 
 static void
-wait_end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+wait_end (void *cls)
 {
   timeout_wait = NULL;
   if (0 == addresses_reported)
@@ -325,8 +325,7 @@
 
 
 static void
-test_addr_string (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+test_addr_string (void *cls)
 {
   struct AddressWrapper *w = cls;
   void *s2a;

Modified: gnunet/src/transport/test_quota_compliance.c
===================================================================
--- gnunet/src/transport/test_quota_compliance.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/test_quota_compliance.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -354,7 +354,7 @@
 
 
 static void
-measure (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+measure (void *cls)
 {
   static int counter;
 

Modified: gnunet/src/transport/test_transport_address_switch.c
===================================================================
--- gnunet/src/transport/test_transport_address_switch.c        2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_address_switch.c        2016-04-09 
23:14:03 UTC (rev 37005)
@@ -564,8 +564,7 @@
 
 
 static void
-progress_indicator (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+progress_indicator (void *cls)
 {
   static int counter;
 

Modified: gnunet/src/transport/test_transport_api.c
===================================================================
--- gnunet/src/transport/test_transport_api.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/transport/test_transport_api.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -96,8 +96,9 @@
   GNUNET_TRANSPORT_TESTING_stop_peer (tth, p2);
 }
 
+
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
 
@@ -225,10 +226,12 @@
 
 
 static void
-sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   send_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));

Modified: gnunet/src/transport/test_transport_api_bidirectional_connect.c
===================================================================
--- gnunet/src/transport/test_transport_api_bidirectional_connect.c     
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_api_bidirectional_connect.c     
2016-04-09 23:14:03 UTC (rev 37005)
@@ -95,7 +95,7 @@
 
 
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n");
@@ -208,10 +208,12 @@
 
 
 static void
-sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   send_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));

Modified: gnunet/src/transport/test_transport_api_blacklisting.c
===================================================================
--- gnunet/src/transport/test_transport_api_blacklisting.c      2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_api_blacklisting.c      2016-04-09 
23:14:03 UTC (rev 37005)
@@ -76,7 +76,7 @@
 
 
 static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping\n");
 
@@ -136,8 +136,9 @@
   }
 }
 
+
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   if (send_task != NULL)
   {
@@ -259,10 +260,12 @@
 
 
 static void
-sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   send_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));

Modified: gnunet/src/transport/test_transport_api_disconnect.c
===================================================================
--- gnunet/src/transport/test_transport_api_disconnect.c        2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_api_disconnect.c        2016-04-09 
23:14:03 UTC (rev 37005)
@@ -107,8 +107,9 @@
   ok = 0;
 }
 
+
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
 
@@ -162,8 +163,11 @@
 
 
 static void
-stop_peer (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+stop_peer (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
 
@@ -248,10 +252,12 @@
 
 
 static void
-sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   send_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));

Modified: gnunet/src/transport/test_transport_api_limited_sockets.c
===================================================================
--- gnunet/src/transport/test_transport_api_limited_sockets.c   2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_api_limited_sockets.c   2016-04-09 
23:14:03 UTC (rev 37005)
@@ -102,7 +102,7 @@
 }
 
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
 
@@ -194,11 +194,14 @@
   th = NULL;
 }
 
+
 static void
-sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   send_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
 
@@ -354,4 +357,3 @@
 #endif
 
 /* end of test_transport_api_limited_sockets.c */
-

Modified: gnunet/src/transport/test_transport_api_manipulation_cfg.c
===================================================================
--- gnunet/src/transport/test_transport_api_manipulation_cfg.c  2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_api_manipulation_cfg.c  2016-04-09 
23:14:03 UTC (rev 37005)
@@ -109,7 +109,7 @@
 
 
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
 
@@ -204,11 +204,12 @@
 
 
 static void
-sendtask_request_task (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask_request_task (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   send_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p2->id));
@@ -269,11 +270,12 @@
 
 
 static void
-sendtask_response_task (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask_response_task (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   send_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   {

Modified: gnunet/src/transport/test_transport_api_manipulation_recv_tcp.c
===================================================================
--- gnunet/src/transport/test_transport_api_manipulation_recv_tcp.c     
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_api_manipulation_recv_tcp.c     
2016-04-09 23:14:03 UTC (rev 37005)
@@ -104,8 +104,9 @@
   GNUNET_TRANSPORT_TESTING_stop_peer (tth, p2);
 }
 
+
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
 
@@ -158,8 +159,9 @@
 
 
 static void
-sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+sendtask (void *cls);
 
+
 static void
 notify_receive (void *cls, const struct GNUNET_PeerIdentity *peer,
                 const struct GNUNET_MessageHeader *message)
@@ -288,11 +290,12 @@
 
 
 static void
-sendtask (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   send_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));

Modified: gnunet/src/transport/test_transport_api_manipulation_send_tcp.c
===================================================================
--- gnunet/src/transport/test_transport_api_manipulation_send_tcp.c     
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_api_manipulation_send_tcp.c     
2016-04-09 23:14:03 UTC (rev 37005)
@@ -107,7 +107,7 @@
 
 
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
 
@@ -160,7 +160,7 @@
 
 
 static void
-sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+sendtask (void *cls);
 
 
 static void
@@ -284,13 +284,14 @@
 
 
 static void
-sendtask (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask (void *cls)
 {
   struct GNUNET_TIME_Relative delay;
   struct GNUNET_ATS_Properties prop;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   send_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));

Modified: gnunet/src/transport/test_transport_api_monitor_peers.c
===================================================================
--- gnunet/src/transport/test_transport_api_monitor_peers.c     2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_api_monitor_peers.c     2016-04-09 
23:14:03 UTC (rev 37005)
@@ -129,8 +129,7 @@
 
 
 static void
-end_badly (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Fail! Stopping peers\n");
@@ -261,10 +260,12 @@
 
 
 static void
-sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   send_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));

Modified: gnunet/src/transport/test_transport_api_monitor_validation.c
===================================================================
--- gnunet/src/transport/test_transport_api_monitor_validation.c        
2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_api_monitor_validation.c        
2016-04-09 23:14:03 UTC (rev 37005)
@@ -122,7 +122,7 @@
 }
 
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
 
@@ -273,10 +273,12 @@
 
 
 static void
-sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   send_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));

Modified: gnunet/src/transport/test_transport_api_reliability.c
===================================================================
--- gnunet/src/transport/test_transport_api_reliability.c       2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_api_reliability.c       2016-04-09 
23:14:03 UTC (rev 37005)
@@ -526,8 +526,7 @@
 
 
 static void
-sendtask (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask (void *cls)
 {
   start_time = GNUNET_TIME_absolute_get ();
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,

Modified: gnunet/src/transport/test_transport_api_restart_1peer.c
===================================================================
--- gnunet/src/transport/test_transport_api_restart_1peer.c     2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_api_restart_1peer.c     2016-04-09 
23:14:03 UTC (rev 37005)
@@ -112,8 +112,7 @@
 
 
 static void
-end_badly (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
 
@@ -259,10 +258,12 @@
 
 
 static void
-sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   send_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));

Modified: gnunet/src/transport/test_transport_api_restart_2peers.c
===================================================================
--- gnunet/src/transport/test_transport_api_restart_2peers.c    2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/test_transport_api_restart_2peers.c    2016-04-09 
23:14:03 UTC (rev 37005)
@@ -105,8 +105,7 @@
 
 
 static void
-end_badly (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
 
@@ -265,11 +264,12 @@
 
 
 static void
-sendtask (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+sendtask (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   send_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
 

Modified: gnunet/src/transport/test_transport_api_timeout.c
===================================================================
--- gnunet/src/transport/test_transport_api_timeout.c   2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/test_transport_api_timeout.c   2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -120,8 +120,9 @@
   GNUNET_TRANSPORT_TESTING_done (tth);
 }
 
+
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
 
@@ -181,12 +182,13 @@
 
 
 static void
-timer (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+timer (void *cls)
 {
   static int percentage;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   timer_task = NULL;
-
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
 

Modified: gnunet/src/transport/test_transport_blacklisting.c
===================================================================
--- gnunet/src/transport/test_transport_blacklisting.c  2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/test_transport_blacklisting.c  2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -85,11 +85,13 @@
 #define OKPP do { ok++; } while (0)
 #endif
 
+
 static void
-run_stage(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+run_stage(void *cls);
 
+
 static void
-end(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end (void *cls)
 {
   GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Stopping\n");
 
@@ -129,8 +131,9 @@
   }
 }
 
+
 static void
-end_badly(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
   die_task = NULL;
 
@@ -172,17 +175,20 @@
   stage_task = GNUNET_SCHEDULER_add_now (&run_stage, NULL );
 }
 
+
 static void
-connect_timeout(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+connect_timeout(void *cls)
 {
   GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Peers not connected, next stage\n");
   timeout_task = NULL;
-  stage_task = GNUNET_SCHEDULER_add_now (&run_stage, NULL );
+  stage_task = GNUNET_SCHEDULER_add_now (&run_stage, NULL);
 }
 
+
 static int started;
 
-void
+
+static void
 start_cb(struct PeerContext *p, void *cls)
 {
 
@@ -243,8 +249,9 @@
   return GNUNET_OK;
 }
 
+
 static void
-run_stage(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_stage (void *cls)
 {
   stage_task = NULL;
   if (NULL != die_task)

Modified: gnunet/src/transport/test_transport_startonly.c
===================================================================
--- gnunet/src/transport/test_transport_startonly.c     2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/test_transport_startonly.c     2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -63,9 +63,13 @@
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Exiting\n");
 }
 
+
 static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_badly (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+  tc = GNUNET_SCHEDULER_get_task_context ();
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n");
 
   timeout_task = NULL;

Modified: gnunet/src/transport/transport-testing.c
===================================================================
--- gnunet/src/transport/transport-testing.c    2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/transport/transport-testing.c    2016-04-09 23:14:03 UTC (rev 
37005)
@@ -195,11 +195,9 @@
  * Offer the current HELLO of P2 to P1.
  *
  * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectRequest `
- * @param tc scheduler context
  */
 static void
-offer_hello (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc);
+offer_hello (void *cls);
 
 
 /**
@@ -207,8 +205,7 @@
  * transport service.
  */
 static void
-hello_offered (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+hello_offered (void *cls)
 {
   struct GNUNET_TRANSPORT_TESTING_ConnectRequest *cc = cls;
 
@@ -224,17 +221,17 @@
  * Offer the current HELLO of P2 to P1.
  *
  * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectRequest `
- * @param tc scheduler context
  */
 static void
-offer_hello (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+offer_hello (void *cls)
 {
   struct GNUNET_TRANSPORT_TESTING_ConnectRequest *cc = cls;
   struct PeerContext *p1 = cc->p1;
   struct PeerContext *p2 = cc->p2;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   cc->tct = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
     return;
   {

Modified: gnunet/src/transport/transport_api.c
===================================================================
--- gnunet/src/transport/transport_api.c        2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/transport/transport_api.c        2016-04-09 23:14:03 UTC (rev 
37005)
@@ -401,11 +401,9 @@
  * A neighbour has not gotten a SEND_OK in a  while. Print a warning.
  *
  * @param cls the `struct Neighbour`
- * @param tc scheduler context
  */
 static void
-do_warn_unready (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_warn_unready (void *cls)
 {
   struct Neighbour *n = cls;
   struct GNUNET_TIME_Relative delay;
@@ -830,11 +828,9 @@
  * network congestion.  Notify the initiator and clean up.
  *
  * @param cls the `struct GNUNET_TRANSPORT_TransmitHandle`
- * @param tc scheduler context
  */
 static void
-timeout_request_due_to_congestion (void *cls,
-                                   const struct GNUNET_SCHEDULER_TaskContext 
*tc)
+timeout_request_due_to_congestion (void *cls)
 {
   struct GNUNET_TRANSPORT_TransmitHandle *th = cls;
   struct Neighbour *n = th->neighbour;
@@ -1015,11 +1011,9 @@
  * list or the peer message queues  to the service.
  *
  * @param cls transport service to schedule a transmission for
- * @param tc scheduler context
  */
 static void
-schedule_transmission_task (void *cls,
-                            const struct GNUNET_SCHEDULER_TaskContext *tc)
+schedule_transmission_task (void *cls)
 {
   struct GNUNET_TRANSPORT_Handle *h = cls;
   size_t size;
@@ -1197,15 +1191,15 @@
  * Try again to connect to transport service.
  *
  * @param cls the handle to the transport service
- * @param tc scheduler context
  */
 static void
-reconnect (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect (void *cls)
 {
   struct GNUNET_TRANSPORT_Handle *h = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   h->reconnect_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     /* shutdown, just give up */
@@ -1315,11 +1309,7 @@
   struct GNUNET_TRANSPORT_OfferHelloHandle *ohh = cls;
   struct GNUNET_MessageHeader *msg = ohh->msg;
   uint16_t ssize;
-  struct GNUNET_SCHEDULER_TaskContext tc;
 
-  tc.read_ready = NULL;
-  tc.write_ready = NULL;
-  tc.reason = GNUNET_SCHEDULER_REASON_TIMEOUT;
   if (NULL == buf)
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG,
@@ -1326,8 +1316,7 @@
          "Timeout while trying to transmit `%s' request.\n",
          "HELLO");
     if (NULL != ohh->cont)
-      ohh->cont (ohh->cls,
-                 &tc);
+      ohh->cont (ohh->cls);
     GNUNET_free (msg);
     GNUNET_CONTAINER_DLL_remove (ohh->th->oh_head,
                                  ohh->th->oh_tail,
@@ -1344,10 +1333,8 @@
           msg,
           ssize);
   GNUNET_free (msg);
-  tc.reason = GNUNET_SCHEDULER_REASON_READ_READY;
   if (NULL != ohh->cont)
-    ohh->cont (ohh->cls,
-               &tc);
+    ohh->cont (ohh->cls);
   GNUNET_CONTAINER_DLL_remove (ohh->th->oh_head,
                                ohh->th->oh_tail,
                                ohh);
@@ -1529,11 +1516,9 @@
  * Task to call the HelloUpdateCallback of the GetHelloHandle
  *
  * @param cls the `struct GNUNET_TRANSPORT_GetHelloHandle`
- * @param tc the scheduler task context
  */
 static void
-call_hello_update_cb_async (void *cls,
-                            const struct GNUNET_SCHEDULER_TaskContext *tc)
+call_hello_update_cb_async (void *cls)
 {
   struct GNUNET_TRANSPORT_GetHelloHandle *ghh = cls;
 

Modified: gnunet/src/transport/transport_api_monitor_peers.c
===================================================================
--- gnunet/src/transport/transport_api_monitor_peers.c  2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/transport/transport_api_monitor_peers.c  2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -204,11 +204,9 @@
  * Task run to re-establish the connection.
  *
  * @param cls our `struct GNUNET_TRANSPORT_PeerMonitoringContext *`
- * @param tc scheduler context, unused
  */
 static void
-do_peer_connect (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_peer_connect (void *cls)
 {
   struct GNUNET_TRANSPORT_PeerMonitoringContext *pal_ctx = cls;
 

Modified: gnunet/src/transport/transport_api_monitor_plugins.c
===================================================================
--- gnunet/src/transport/transport_api_monitor_plugins.c        2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/transport_api_monitor_plugins.c        2016-04-09 
23:14:03 UTC (rev 37005)
@@ -133,11 +133,9 @@
  * Task run to re-establish the connection.
  *
  * @param cls our `struct GNUNET_TRANSPORT_PluginMonitor *`
- * @param tc scheduler context, unused
  */
 static void
-do_plugin_connect (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_plugin_connect (void *cls)
 {
   struct GNUNET_TRANSPORT_PluginMonitor *pm = cls;
 

Modified: gnunet/src/transport/transport_api_monitor_validation.c
===================================================================
--- gnunet/src/transport/transport_api_monitor_validation.c     2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/transport/transport_api_monitor_validation.c     2016-04-09 
23:14:03 UTC (rev 37005)
@@ -154,11 +154,9 @@
  * Task run to re-establish the connection.
  *
  * @param cls our `struct GNUNET_TRANSPORT_ValidationMonitoringContext *`
- * @param tc scheduler context, unused
  */
 static void
-do_val_connect (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_val_connect (void *cls)
 {
   struct GNUNET_TRANSPORT_ValidationMonitoringContext *val_ctx = cls;
 
@@ -293,7 +291,7 @@
   }
   addr = (const char *) &vr_msg[1];
   transport_name = &addr[alen];
-  
+
   if (transport_name[tlen - 1] != '\0')
   {
     /* Corrupt plugin name */
@@ -314,7 +312,7 @@
     }
     return;
   }
-  
+
   /* notify client */
   address = GNUNET_HELLO_address_allocate (&vr_msg->peer,
                                           transport_name,

Modified: gnunet/src/util/bandwidth.c
===================================================================
--- gnunet/src/util/bandwidth.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/bandwidth.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -142,11 +142,9 @@
  * Task run whenever we hit the bandwidth limit for a tracker.
  *
  * @param cls the `struct GNUNET_BANDWIDTH_Tracker`
- * @param tc scheduler context
  */
 static void
-excess_trigger (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+excess_trigger (void *cls)
 {
   struct GNUNET_BANDWIDTH_Tracker *av = cls;
 

Modified: gnunet/src/util/client.c
===================================================================
--- gnunet/src/util/client.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/client.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -579,11 +579,9 @@
  * Continuation to call the receive callback.
  *
  * @param cls  our handle to the client connection
- * @param tc scheduler context
  */
 static void
-receive_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+receive_task (void *cls)
 {
   struct GNUNET_CLIENT_Connection *client = cls;
   GNUNET_CLIENT_MessageHandler handler = client->receiver_handler;
@@ -746,11 +744,9 @@
  * and then cleans up.
  *
  * @param cls the `struct GNUNET_CLIENT_TestHandle`
- * @param tc scheduler context
  */
 static void
-report_result (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+report_result (void *cls)
 {
   struct GNUNET_CLIENT_TestHandle *th = cls;
 
@@ -1080,16 +1076,16 @@
  * service after a while.
  *
  * @param cls our `struct GNUNET_CLIENT_TransmitHandle` of the request
- * @param tc unused
  */
 static void
-client_delayed_retry (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+client_delayed_retry (void *cls)
 {
   struct GNUNET_CLIENT_TransmitHandle *th = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   struct GNUNET_TIME_Relative delay;
 
   th->reconnect_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     /* give up, was shutdown */
@@ -1153,11 +1149,14 @@
   struct GNUNET_CLIENT_Connection *client = th->client;
   size_t ret;
   struct GNUNET_TIME_Relative delay;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+
   LOG (GNUNET_ERROR_TYPE_DEBUG,
        "client_notify is running\n");
   th->th = NULL;
   client->th = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (NULL == buf)
   {
     delay = GNUNET_TIME_absolute_get_remaining (th->timeout);
@@ -1165,7 +1164,7 @@
     if ( (GNUNET_YES != th->auto_retry) ||
          (0 == --th->attempts_left) ||
          (delay.rel_value_us < 1)||
-         (0 != (GNUNET_SCHEDULER_get_reason() & 
GNUNET_SCHEDULER_REASON_SHUTDOWN)))
+         (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)))
     {
       LOG (GNUNET_ERROR_TYPE_DEBUG,
            "Transmission failed %u times, giving up.\n",

Modified: gnunet/src/util/client_manager.c
===================================================================
--- gnunet/src/util/client_manager.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/client_manager.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -240,7 +240,7 @@
 
 
 static void
-schedule_disconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+schedule_disconnect (void *cls)
 {
   struct GNUNET_CLIENT_MANAGER_Connection *mgr = cls;
   GNUNET_CLIENT_MANAGER_disconnect (mgr, GNUNET_NO,
@@ -341,11 +341,9 @@
  *
  * @param cls
  *        Channel handle.
- * @param tc
- *        Scheduler context.
  */
 static void
-schedule_reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+schedule_reconnect (void *cls)
 {
   struct GNUNET_CLIENT_MANAGER_Connection *mgr = cls;
   mgr->reconnect_task = NULL;

Modified: gnunet/src/util/connection.c
===================================================================
--- gnunet/src/util/connection.c        2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/connection.c        2016-04-09 23:14:03 UTC (rev 37005)
@@ -606,10 +606,9 @@
  * We are ready to transmit (or got a timeout).
  *
  * @param cls our connection handle
- * @param tc task context describing why we are here
  */
 static void
-transmit_ready (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+transmit_ready (void *cls);
 
 
 /**
@@ -617,10 +616,9 @@
  * to read.
  *
  * @param cls connection to read from
- * @param tc scheduler context
  */
 static void
-receive_ready (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+receive_ready (void *cls);
 
 
 /**
@@ -668,15 +666,14 @@
  * Scheduler let us know that we're either ready to write on the
  * socket OR connect timed out.  Do the right thing.
  *
- * @param cls the "struct AddressProbe*" with the address that we are probing
- * @param tc success or failure info about the connect attempt.
+ * @param cls the `struct AddressProbe *` with the address that we are probing
  */
 static void
-connect_probe_continuation (void *cls,
-                            const struct GNUNET_SCHEDULER_TaskContext *tc)
+connect_probe_continuation (void *cls)
 {
   struct AddressProbe *ap = cls;
   struct GNUNET_CONNECTION_Handle *connection = ap->connection;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   struct AddressProbe *pos;
   int error;
   socklen_t len;
@@ -686,6 +683,7 @@
   len = sizeof (error);
   errno = 0;
   error = 0;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if ((0 == (tc->reason & GNUNET_SCHEDULER_REASON_WRITE_READY)) ||
       (GNUNET_OK !=
        GNUNET_NETWORK_socket_getsockopt (ap->sock, SOL_SOCKET, SO_ERROR, 
&error,
@@ -1095,18 +1093,18 @@
  * or have data ready to read.
  *
  * @param cls connection to read from
- * @param tc scheduler context
  */
 static void
-receive_ready (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+receive_ready (void *cls)
 {
   struct GNUNET_CONNECTION_Handle *connection = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   char buffer[connection->max];
   ssize_t ret;
   GNUNET_CONNECTION_Receiver receiver;
 
   connection->read_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     /* ignore shutdown request, go again immediately */
@@ -1296,11 +1294,9 @@
  * This task notifies the client about the timeout.
  *
  * @param cls the `struct GNUNET_CONNECTION_Handle`
- * @param tc scheduler context
  */
 static void
-transmit_timeout (void *cls,
-                  const struct GNUNET_SCHEDULER_TaskContext *tc)
+transmit_timeout (void *cls)
 {
   struct GNUNET_CONNECTION_Handle *connection = cls;
   GNUNET_CONNECTION_TransmitReadyNotify notify;
@@ -1327,11 +1323,9 @@
  * This task notifies the client about the error.
  *
  * @param cls the `struct GNUNET_CONNECTION_Handle`
- * @param tc scheduler context
  */
 static void
-connect_error (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+connect_error (void *cls)
 {
   struct GNUNET_CONNECTION_Handle *connection = cls;
   GNUNET_CONNECTION_TransmitReadyNotify notify;
@@ -1353,14 +1347,13 @@
  * We are ready to transmit (or got a timeout).
  *
  * @param cls our connection handle
- * @param tc task context describing why we are here
  */
 static void
-transmit_ready (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+transmit_ready (void *cls)
 {
   struct GNUNET_CONNECTION_Handle *connection = cls;
   GNUNET_CONNECTION_TransmitReadyNotify notify;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   ssize_t ret;
   size_t have;
 
@@ -1370,6 +1363,7 @@
   GNUNET_assert (NULL != connection->write_task);
   connection->write_task = NULL;
   GNUNET_assert (NULL == connection->nth.timeout_task);
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     if (NULL != connection->sock)

Modified: gnunet/src/util/crypto_hash_file.c
===================================================================
--- gnunet/src/util/crypto_hash_file.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/crypto_hash_file.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -117,10 +117,9 @@
  * File hashing task.
  *
  * @param cls closure
- * @param tc context
  */
 static void
-file_hash_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+file_hash_task (void *cls)
 {
   struct GNUNET_CRYPTO_FileHashContext *fhc = cls;
   struct GNUNET_HashCode *res;

Modified: gnunet/src/util/disk_iterator.c
===================================================================
--- gnunet/src/util/disk_iterator.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/disk_iterator.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -77,8 +77,7 @@
  * Task used by the directory iterator.
  */
 static void
-directory_iterator_task (void *cls,
-                         const struct GNUNET_SCHEDULER_TaskContext *tc)
+directory_iterator_task (void *cls)
 {
   struct GNUNET_DISK_DirectoryIterator *iter = cls;
   char *name;

Modified: gnunet/src/util/gnunet-scrypt.c
===================================================================
--- gnunet/src/util/gnunet-scrypt.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/gnunet-scrypt.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -110,8 +110,7 @@
  * @param tc task context
  */
 static void
-find_proof (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+find_proof (void *cls)
 {
   #define ROUND_SIZE 10
   uint64_t counter;
@@ -121,7 +120,9 @@
   unsigned int i;
   struct GNUNET_TIME_Absolute timestamp;
   struct GNUNET_TIME_Relative elapsed;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
   {
     write_proof ();

Modified: gnunet/src/util/gnunet-uri.c
===================================================================
--- gnunet/src/util/gnunet-uri.c        2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/gnunet-uri.c        2016-04-09 23:14:03 UTC (rev 37005)
@@ -47,10 +47,9 @@
  * process died) or when user presses CTRL-C.
  *
  * @param cls closure, NULL
- * @param tc scheduler context
  */
 static void
-maint_child_death (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+maint_child_death (void *cls)
 {
   enum GNUNET_OS_ProcessStatusType type;
   if ( (GNUNET_OK !=

Modified: gnunet/src/util/helper.c
===================================================================
--- gnunet/src/util/helper.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/helper.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -138,7 +138,7 @@
    * NULL-terminated list of command-line arguments.
    */
   char **binary_argv;
-               
+
   /**
    * Task to read from the helper.
    */
@@ -305,11 +305,9 @@
  * Restart the helper process.
  *
  * @param cls handle to the helper process
- * @param tc scheduler context
  */
 static void
-restart_task (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc);
+restart_task (void *cls);
 
 
 /**
@@ -316,17 +314,17 @@
  * Read from the helper-process
  *
  * @param cls handle to the helper process
- * @param tc scheduler context
  */
 static void
-helper_read (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+helper_read (void *cls)
 {
   struct GNUNET_HELPER_Handle *h = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   char buf[GNUNET_SERVER_MAX_MESSAGE_SIZE] GNUNET_ALIGN;
   ssize_t t;
 
   h->read_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     /* try again */
@@ -458,17 +456,15 @@
  * Restart the helper process.
  *
  * @param cls handle to the helper process
- * @param tc scheduler context
  */
 static void
-restart_task (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+restart_task (void *cls)
 {
   struct GNUNET_HELPER_Handle*h = cls;
 
   h->restart_task = NULL;
   h->retry_back_off++;
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, 
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Restarting helper with back-off %u\n",
               h->retry_back_off);
   start_helper (h);
@@ -582,18 +578,18 @@
  * Write to the helper-process
  *
  * @param cls handle to the helper process
- * @param tc scheduler context
  */
 static void
-helper_write (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+helper_write (void *cls)
 {
   struct GNUNET_HELPER_Handle *h = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   struct GNUNET_HELPER_SendHandle *sh;
   const char *buf;
   ssize_t t;
 
   h->write_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     /* try again */

Modified: gnunet/src/util/mq.c
===================================================================
--- gnunet/src/util/mq.c        2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/mq.c        2016-04-09 23:14:03 UTC (rev 37005)
@@ -297,15 +297,15 @@
  * results in undefined behavior if not used carefully.
  *
  * @param cls message queue to send the next message with
- * @param tc scheduler context
  */
 static void
-impl_send_continue (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+impl_send_continue (void *cls)
 {
   struct GNUNET_MQ_Handle *mq = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   struct GNUNET_MQ_Envelope *current_envelope;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
 

Modified: gnunet/src/util/os_priority.c
===================================================================
--- gnunet/src/util/os_priority.c       2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/os_priority.c       2016-04-09 23:14:03 UTC (rev 37005)
@@ -70,18 +70,19 @@
  * This handler is called when there are control data to be read on the pipe
  *
  * @param cls the 'struct GNUNET_DISK_FileHandle' of the control pipe
- * @param tc scheduler context
  */
 static void
-parent_control_handler (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+parent_control_handler (void *cls)
 {
   struct GNUNET_DISK_FileHandle *control_pipe = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   char sig;
   char *pipe_fd;
   ssize_t ret;
 
-  LOG (GNUNET_ERROR_TYPE_DEBUG, "`%s' invoked because of %d\n", __FUNCTION__,
+  tc = GNUNET_SCHEDULER_get_task_context ();
+  LOG (GNUNET_ERROR_TYPE_DEBUG,
+       "`%s' invoked because of %d\n", __FUNCTION__,
        tc->reason);
   if (0 != (tc->reason &
            (GNUNET_SCHEDULER_REASON_SHUTDOWN | 
GNUNET_SCHEDULER_REASON_TIMEOUT)))
@@ -118,12 +119,9 @@
  * variable) and raise those signals.
  *
  * @param cls closure (unused)
- * @param tc scheduler context (unused)
  */
 void
-GNUNET_OS_install_parent_control_handler (void *cls,
-                                          const struct
-                                          GNUNET_SCHEDULER_TaskContext *tc)
+GNUNET_OS_install_parent_control_handler (void *cls)
 {
   const char *env_buf;
   char *env_buf_end;
@@ -1751,18 +1749,19 @@
 /**
  * Read from the process and call the line processor.
  *
- * @param cls the 'struct GNUNET_OS_CommandHandle'
- * @param tc scheduler context
+ * @param cls the `struct GNUNET_OS_CommandHandle *`
  */
 static void
-cmd_read (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cmd_read (void *cls)
 {
   struct GNUNET_OS_CommandHandle *cmd = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   GNUNET_OS_LineProcessor proc;
   char *end;
   ssize_t ret;
 
   cmd->rtask = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (GNUNET_YES != GNUNET_NETWORK_fdset_handle_isset (tc->read_ready, cmd->r))
   {
     /* timeout, shutdown, etc. */

Modified: gnunet/src/util/program.c
===================================================================
--- gnunet/src/util/program.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/program.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -73,10 +73,12 @@
  * program.  Runs the program-specific main task.
  */
 static void
-program_main (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+program_main (void *cls)
 {
   struct CommandContext *cc = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
   GNUNET_SPEEDUP_start_(cc->cfg);

Modified: gnunet/src/util/resolver_api.c
===================================================================
--- gnunet/src/util/resolver_api.c      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/resolver_api.c      2016-04-09 23:14:03 UTC (rev 37005)
@@ -532,11 +532,9 @@
  * numeric addresses.
  *
  * @param cls `struct GNUNET_RESOLVER_RequestHandle` for the request
- * @param tc unused scheduler context
  */
 static void
-numeric_resolution (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+numeric_resolution (void *cls)
 {
   struct GNUNET_RESOLVER_RequestHandle *rh = cls;
   struct sockaddr_in v4;
@@ -600,11 +598,9 @@
  * respective loopback numeric addresses.
  *
  * @param cls `struct GNUNET_RESOLVER_RequestHandle` for the request
- * @param tc unused scheduler context
  */
 static void
-loopback_resolution (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+loopback_resolution (void *cls)
 {
   struct GNUNET_RESOLVER_RequestHandle *rh = cls;
   struct sockaddr_in v4;
@@ -658,8 +654,7 @@
  * Task executed on system shutdown.
  */
 static void
-shutdown_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   s_task = NULL;
   GNUNET_RESOLVER_disconnect ();
@@ -728,15 +723,16 @@
  * Now try to reconnect to the resolver service.
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-reconnect_task (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_task (void *cls)
 {
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
+
   r_task = NULL;
   if (NULL == req_head)
     return;                     /* no work pending */
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   LOG (GNUNET_ERROR_TYPE_DEBUG,
@@ -802,11 +798,9 @@
  * A DNS resolution timed out. Notify the application.
  *
  * @param cls the `struct GNUNET_RESOLVER_RequestHandle *`
- * @param tc scheduler context
  */
 static void
-handle_lookup_timeout (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+handle_lookup_timeout (void *cls)
 {
   struct GNUNET_RESOLVER_RequestHandle *rh = cls;
 
@@ -902,11 +896,9 @@
  * conversion and invoke the callback.
  *
  * @param cls `struct GNUNET_RESOLVER_RequestHandle` for the request
- * @param tc unused scheduler context
  */
 static void
-numeric_reverse (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+numeric_reverse (void *cls)
 {
   struct GNUNET_RESOLVER_RequestHandle *rh = cls;
   char *result;

Modified: gnunet/src/util/scheduler.c
===================================================================
--- gnunet/src/util/scheduler.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/scheduler.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -256,6 +256,11 @@
 static GNUNET_SCHEDULER_select scheduler_select;
 
 /**
+ * Task context of the current task.
+ */
+static struct GNUNET_SCHEDULER_TaskContext tc;
+
+/**
  * Closure for #scheduler_select.
  */
 static void *scheduler_select_cls;
@@ -533,7 +538,6 @@
 {
   enum GNUNET_SCHEDULER_Priority p;
   struct GNUNET_SCHEDULER_Task *pos;
-  struct GNUNET_SCHEDULER_TaskContext tc;
 
   max_priority_added = GNUNET_SCHEDULER_PRIORITY_KEEP;
   do
@@ -584,7 +588,7 @@
     LOG (GNUNET_ERROR_TYPE_DEBUG,
         "Running task: %p\n",
          pos);
-    pos->callback (pos->callback_cls, &tc);
+    pos->callback (pos->callback_cls);
 #if EXECINFO
     unsigned int i;
 
@@ -902,17 +906,16 @@
 
 
 /**
- * Obtain the reason code for why the current task was
- * started.  Will return the same value as
- * the `struct GNUNET_SCHEDULER_TaskContext`'s reason field.
+ * Obtain the task context, giving the reason why the current task was
+ * started.
  *
- * @return reason(s) why the current task is run
+ * @return current tasks' scheduler context
  */
-enum GNUNET_SCHEDULER_Reason
-GNUNET_SCHEDULER_get_reason ()
+const struct GNUNET_SCHEDULER_TaskContext *
+GNUNET_SCHEDULER_get_task_context ()
 {
   GNUNET_assert (NULL != active_task);
-  return active_task->reason;
+  return &tc;
 }
 
 

Modified: gnunet/src/util/server.c
===================================================================
--- gnunet/src/util/server.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/server.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -389,17 +389,17 @@
  *
  * @param cls handle to our server for which we are processing the listen
  *        socket
- * @param tc reason why we are running right now
  */
 static void
-process_listen_socket (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+process_listen_socket (void *cls)
 {
   struct GNUNET_SERVER_Handle *server = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
   struct GNUNET_CONNECTION_Handle *sock;
   unsigned int i;
 
   server->listen_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
   {
     /* ignore shutdown, someone else will take care of it! */
@@ -655,12 +655,10 @@
  * Helper function for #test_monitor_clients() to trigger
  * #GNUNET_SERVER_destroy() after the stack has unwound.
  *
- * @param cls the 'struct GNUNET_SERVER_Handle' to destroy
- * @param tc unused
+ * @param cls the `struct GNUNET_SERVER_Handle *` to destroy
  */
 static void
-do_destroy (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_destroy (void *cls)
 {
   struct GNUNET_SERVER_Handle *server = cls;
 
@@ -887,18 +885,18 @@
  * Task run to warn about missing calls to #GNUNET_SERVER_receive_done.
  *
  * @param cls our `struct GNUNET_SERVER_Client *` to process more requests from
- * @param tc scheduler context (unused)
  */
 static void
-warn_no_receive_done (void *cls,
-                     const struct GNUNET_SCHEDULER_TaskContext *tc)
+warn_no_receive_done (void *cls)
 {
   struct GNUNET_SERVER_Client *client = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   GNUNET_break (0 != client->warn_type); /* type should never be 0 here, as we 
don't use 0 */
   client->warn_task =
       GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MINUTES,
                                     &warn_no_receive_done, client);
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 == (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     LOG (GNUNET_ERROR_TYPE_WARNING,
          _("Processing code for message of type %u did not call 
`GNUNET_SERVER_receive_done' after %s\n"),
@@ -1199,11 +1197,9 @@
  * and process requests.
  *
  * @param cls our `struct GNUNET_SERVER_Client *` to process more requests from
- * @param tc scheduler context (unused)
  */
 static void
-restart_processing (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+restart_processing (void *cls)
 {
   struct GNUNET_SERVER_Client *client = cls;
 
@@ -1497,11 +1493,9 @@
  * 'connection.c' is not allowed (see #2329).
  *
  * @param cls connection to destroy
- * @param tc scheduler context (unused)
  */
 static void
-destroy_connection (void *cls,
-                   const struct GNUNET_SCHEDULER_TaskContext *tc)
+destroy_connection (void *cls)
 {
   struct GNUNET_CONNECTION_Handle *connection = cls;
 

Modified: gnunet/src/util/service.c
===================================================================
--- gnunet/src/util/service.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/service.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -1126,11 +1126,9 @@
  * Task run during shutdown.  Stops the server/service.
  *
  * @param cls the `struct GNUNET_SERVICE_Context`
- * @param tc unused
  */
 static void
-shutdown_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls)
 {
   struct GNUNET_SERVICE_Context *service = cls;
   struct GNUNET_SERVER_Handle *server = service->server;
@@ -1147,14 +1145,15 @@
  * Initial task for the service.
  *
  * @param cls service context
- * @param tc unused
  */
 static void
-service_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+service_task (void *cls)
 {
   struct GNUNET_SERVICE_Context *sctx = cls;
   unsigned int i;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
   (void) GNUNET_SPEEDUP_start_ (sctx->cfg);

Modified: gnunet/src/util/socks.c
===================================================================
--- gnunet/src/util/socks.c     2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/socks.c     2016-04-09 23:14:03 UTC (rev 37005)
@@ -105,7 +105,7 @@
 /**
  * State of the SOCKS5 handshake.
  */
-struct GNUNET_SOCKS_Handshake 
+struct GNUNET_SOCKS_Handshake
 {
 
   /**
@@ -124,7 +124,7 @@
   struct GNUNET_CONNECTION_TransmitHandle *th;
 
   /**
-   * Our stage in the SOCKS5 handshake 
+   * Our stage in the SOCKS5 handshake
    */
   int step;
 
@@ -199,7 +199,7 @@
   GNUNET_assert (SOCKS5_step_done > ih->step && ih->step >= 0);
   switch (ih->step) {
     case SOCKS5_step_greet:  /* SOCKS5 server's greeting */
-      if (b[0] != 5) 
+      if (b[0] != 5)
       {
         LOG (GNUNET_ERROR_TYPE_ERROR,
              "Not a SOCKS5 server\n");
@@ -234,7 +234,7 @@
       b += 2;
       break;
     case SOCKS5_step_cmd:  /* SOCKS5 server's responce to command */
-      if (b[0] != 5) 
+      if (b[0] != 5)
       {
         LOG (GNUNET_ERROR_TYPE_ERROR,
              "SOCKS5 protocol error\n");
@@ -271,11 +271,11 @@
       ih->instart = b;
       SOCKS5_handshake_done (ih);
       return;
-    case SOCKS5_step_done: 
+    case SOCKS5_step_done:
       GNUNET_assert (0);
   }
   ih->instart = b;
-  /* Do not reschedule the sender unless we're done reading. 
+  /* Do not reschedule the sender unless we're done reading.
    * I imagine this lets us avoid ever cancelling the transmit handle. */
   register_sender (ih);
 }
@@ -289,7 +289,7 @@
  * @param handler_cls closure for @a handler
  */
 void
-reciever (void *cls, 
+reciever (void *cls,
           const void *buf, size_t available,
           const struct sockaddr * addr,
           socklen_t addrlen, int errCode)
@@ -330,7 +330,7 @@
  */
 
 size_t
-transmit_ready (void *cls, 
+transmit_ready (void *cls,
                 size_t size,
                 void *buf)
 {
@@ -345,23 +345,28 @@
    * GNUNET_CONNECTION_notify_transmit_ready() can schedule :
    *   transmit_timeout() - DNS still working
    *   connect_error() - DNS done but no socket?
-   * transmit_ready() - scheduler shutdown or timeout, or 
signal_transmit_error() 
+   * transmit_ready() - scheduler shutdown or timeout, or 
signal_transmit_error()
    * We'd need to dig into the scheduler to guess at the reason, as
    * connection.c tells us nothing itself, but mostly its timouts.
    * Initially, we'll simply ignore this and leave massive timeouts, but
    * maybe that should change for error handling pruposes.  It appears that
    * successful operations, including DNS resolution, do not use this.  */
-  if (NULL==buf)
+  if (NULL == buf)
   {
-    enum GNUNET_SCHEDULER_Reason reason = GNUNET_SCHEDULER_get_reason ();
-    if (0 != (reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
+    const struct GNUNET_SCHEDULER_TaskContext *tc;
+
+    tc = GNUNET_SCHEDULER_get_task_context ();
+    if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
       return 0;
-    if (0 != (reason & GNUNET_SCHEDULER_REASON_TIMEOUT)) {
-      if (0==ih->step) {
+    if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_TIMEOUT)) {
+      if (0==ih->step)
+      {
         LOG (GNUNET_ERROR_TYPE_WARNING,
              "Timeout contacting SOCKS server, retrying indefinitely, but 
probably hopeless.\n");
         register_sender (ih);
-      } else {
+      }
+      else
+      {
         LOG (GNUNET_ERROR_TYPE_ERROR,
              "Timeout during mid SOCKS handshake (step %u), probably not a 
SOCKS server.\n",
              ih->step);
@@ -418,7 +423,7 @@
 /**
  * Initialize a SOCKS5 handshake for authentication via username and
  * password.  Tor uses SOCKS username and password authentication to assign
- * programs unique circuits. 
+ * programs unique circuits.
  *
  * @param user username for the proxy
  * @param pass password for the proxy
@@ -435,7 +440,7 @@
   unsigned char * n = b++;
   *n = 1; /* Number of authentication methods */
   /* We support no authentication even when requesting authentication,
-   * but this appears harmless, given the way that Tor uses authentication. 
+   * but this appears harmless, given the way that Tor uses authentication.
    * And some SOCKS5 servers might require this.  */
   *(b++) = SOCKS5_AUTH_NOAUTH;
   if (NULL != user) {
@@ -445,7 +450,7 @@
   /* There is no apperent reason to support authentication methods beyond
    * username and password since afaik Tor does not support them. */
 
-  /* We authenticate with an empty username and password if the server demands 
+  /* We authenticate with an empty username and password if the server demands
    * them but we do not have any. */
   if (user == NULL)
     user = "";
@@ -466,7 +471,7 @@
 
 
 /**
- * Initialize a SOCKS5 handshake without authentication, thereby possibly 
+ * Initialize a SOCKS5 handshake without authentication, thereby possibly
  * sharing a Tor circuit with another process.
  *
  * @return Valid SOCKS5 hanbdshake handle
@@ -480,11 +485,11 @@
 
 /**
  * Build request that the SOCKS5 proxy open a TCP/IP stream to the given host
- * and port.  
+ * and port.
  *
  * @param ih SOCKS5 handshake
- * @param hostname 
- * @param port 
+ * @param hostname
+ * @param port
  */
 void
 GNUNET_SOCKS_set_handshake_destination (struct GNUNET_SOCKS_Handshake *ih,
@@ -529,7 +534,7 @@
  * @param c open unused connection, consumed here.
  * @return Connection handle that becomes usable when the SOCKS5 handshake 
completes.
  */
-struct GNUNET_CONNECTION_Handle * 
+struct GNUNET_CONNECTION_Handle *
 GNUNET_SOCKS_run_handshake(struct GNUNET_SOCKS_Handshake *ih,
                             struct GNUNET_CONNECTION_Handle *c)
 {
@@ -580,7 +585,7 @@
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_number (cfg, service_name, "SOCKSPORT", 
&port0))
     port0 = 9050;
-  /* A typical Tor client should usually try port 9150 for the TBB too, but 
+  /* A typical Tor client should usually try port 9150 for the TBB too, but
    * GUNNet can probably assume a system Tor instalation. */
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_string (cfg, service_name, "SOCKSHOST", 
&host0))

Modified: gnunet/src/util/speedup.c
===================================================================
--- gnunet/src/util/speedup.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/speedup.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -34,16 +34,17 @@
 
 static struct GNUNET_TIME_Relative delta;
 
-static struct GNUNET_SCHEDULER_Task * speedup_task;
+static struct GNUNET_SCHEDULER_Task *speedup_task;
 
 
 static void
-do_speedup (void *cls,
-            const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_speedup (void *cls)
 {
   static long long current_offset;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
   speedup_task = NULL;
+  tc = GNUNET_SCHEDULER_get_task_context ();
   if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
     return;
   current_offset += delta.rel_value_us;

Modified: gnunet/src/util/test_client.c
===================================================================
--- gnunet/src/util/test_client.c       2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/test_client.c       2016-04-09 23:14:03 UTC (rev 37005)
@@ -125,7 +125,7 @@
 
 
 static void
-task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task (void *cls)
 {
   struct sockaddr_in sa;
   struct sockaddr *sap[2];

Modified: gnunet/src/util/test_common_logging_runtime_loglevels.c
===================================================================
--- gnunet/src/util/test_common_logging_runtime_loglevels.c     2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/util/test_common_logging_runtime_loglevels.c     2016-04-09 
23:14:03 UTC (rev 37005)
@@ -58,7 +58,7 @@
 
 
 static void
-end_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_task (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Ending phase %d, ok is %d\n", phase,
               ok);
@@ -215,7 +215,7 @@
 
 
 static void
-read_call (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+read_call (void *cls)
 {
   const struct GNUNET_DISK_FileHandle *stdout_read_handle = cls;
   char level[8];
@@ -425,7 +425,7 @@
 
 
 static void
-task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task (void *cls)
 {
   phase = 0;
   runone ();

Modified: gnunet/src/util/test_connection.c
===================================================================
--- gnunet/src/util/test_connection.c   2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/test_connection.c   2016-04-09 23:14:03 UTC (rev 37005)
@@ -98,7 +98,7 @@
 
 
 static void
-run_accept (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_accept (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Test accepts connection\n");
   asock = GNUNET_CONNECTION_create_from_accept (NULL, NULL, ls);
@@ -128,7 +128,7 @@
 
 
 static void
-task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task (void *cls)
 {
   ls = open_listen_socket ();
   lsock = GNUNET_CONNECTION_create_from_existing (ls);

Modified: gnunet/src/util/test_connection_addressing.c
===================================================================
--- gnunet/src/util/test_connection_addressing.c        2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/util/test_connection_addressing.c        2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -102,7 +102,7 @@
 
 
 static void
-run_accept (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_accept (void *cls)
 {
   void *addr;
   size_t alen;
@@ -142,7 +142,7 @@
 
 
 static void
-task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task (void *cls)
 {
   struct sockaddr_in v4;
 

Modified: gnunet/src/util/test_connection_receive_cancel.c
===================================================================
--- gnunet/src/util/test_connection_receive_cancel.c    2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/util/test_connection_receive_cancel.c    2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -79,7 +79,7 @@
 
 
 static void
-run_accept_cancel (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_accept_cancel (void *cls)
 {
   asock = GNUNET_CONNECTION_create_from_accept (NULL, NULL, ls);
   GNUNET_assert (asock != NULL);
@@ -92,7 +92,7 @@
 
 
 static void
-receive_cancel_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+receive_cancel_task (void *cls)
 {
   int *ok = cls;
 
@@ -105,7 +105,7 @@
 
 
 static void
-task_receive_cancel (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task_receive_cancel (void *cls)
 {
   ls = open_listen_socket ();
   lsock = GNUNET_CONNECTION_create_from_existing (ls);

Modified: gnunet/src/util/test_connection_timeout.c
===================================================================
--- gnunet/src/util/test_connection_timeout.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/util/test_connection_timeout.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -93,7 +93,7 @@
 
 
 static void
-task_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task_timeout (void *cls)
 {
 
   ls = open_listen_socket ();

Modified: gnunet/src/util/test_connection_timeout_no_connect.c
===================================================================
--- gnunet/src/util/test_connection_timeout_no_connect.c        2016-04-09 
22:48:59 UTC (rev 37004)
+++ gnunet/src/util/test_connection_timeout_no_connect.c        2016-04-09 
23:14:03 UTC (rev 37005)
@@ -44,7 +44,7 @@
 
 
 static void
-task_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task_timeout (void *cls)
 {
   csock = GNUNET_CONNECTION_create_from_connect (cfg, "localhost", PORT);
   GNUNET_assert (csock != NULL);

Modified: gnunet/src/util/test_connection_transmit_cancel.c
===================================================================
--- gnunet/src/util/test_connection_transmit_cancel.c   2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/util/test_connection_transmit_cancel.c   2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -38,7 +38,7 @@
 
 
 static void
-task_transmit_cancel (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task_transmit_cancel (void *cls)
 {
   int *ok = cls;
   struct GNUNET_CONNECTION_TransmitHandle *th;

Modified: gnunet/src/util/test_crypto_hash.c
===================================================================
--- gnunet/src/util/test_crypto_hash.c  2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/test_crypto_hash.c  2016-04-09 23:14:03 UTC (rev 37005)
@@ -114,7 +114,7 @@
 
 
 static void
-file_hasher (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+file_hasher (void *cls)
 {
   GNUNET_assert (NULL !=
                  GNUNET_CRYPTO_hash_file (GNUNET_SCHEDULER_PRIORITY_DEFAULT,

Modified: gnunet/src/util/test_disk.c
===================================================================
--- gnunet/src/util/test_disk.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/test_disk.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -141,12 +141,13 @@
 }
 
 static void
-iter_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+iter_task (void *cls)
 {
   GNUNET_DISK_directory_iterator_start (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
                                         "test", &iter_callback, cls);
 }
 
+
 static int
 testDirIter ()
 {

Modified: gnunet/src/util/test_mq_client.c
===================================================================
--- gnunet/src/util/test_mq_client.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/test_mq_client.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -62,7 +62,7 @@
 
 
 static void
-clean_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+clean_up (void *cls)
 {
   GNUNET_SERVER_destroy (server);
   server = NULL;
@@ -134,7 +134,7 @@
 
 
 static void
-task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task (void *cls)
 {
   struct sockaddr_in sa;
   struct sockaddr *sap[2];
@@ -181,4 +181,3 @@
   GNUNET_assert (GNUNET_YES == notify);
   return ok;
 }
-

Modified: gnunet/src/util/test_os_start_process.c
===================================================================
--- gnunet/src/util/test_os_start_process.c     2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/util/test_os_start_process.c     2016-04-09 23:14:03 UTC (rev 
37005)
@@ -58,7 +58,7 @@
 struct read_context rc;
 
 static void
-end_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+end_task (void *cls)
 {
   if (0 != GNUNET_OS_process_kill (proc, GNUNET_TERM_SIG))
   {
@@ -73,7 +73,7 @@
 
 
 static void
-read_call (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+read_call (void *cls)
 {
   int bytes;
 
@@ -110,7 +110,7 @@
 
 
 static void
-run_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_task (void *cls)
 {
   char *fn;
   const struct GNUNET_DISK_FileHandle *stdout_read_handle;

Modified: gnunet/src/util/test_scheduler.c
===================================================================
--- gnunet/src/util/test_scheduler.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/test_scheduler.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -31,7 +31,7 @@
 
 
 static void
-task2 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task2 (void *cls)
 {
   int *ok = cls;
 
@@ -44,7 +44,7 @@
 
 
 static void
-task3 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task3 (void *cls)
 {
   int *ok = cls;
 
@@ -54,11 +54,13 @@
 
 
 static void
-taskWrt (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+taskWrt (void *cls)
 {
   static char c;
   int *ok = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   GNUNET_assert (6 == *ok);
   GNUNET_assert (GNUNET_NETWORK_fdset_handle_isset (tc->write_ready, fds[1]));
   (*ok) = 7;
@@ -67,7 +69,7 @@
 
 
 static void
-taskNeverRun (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+taskNeverRun (void *cls)
 {
   GNUNET_assert (0);
 }
@@ -74,7 +76,7 @@
 
 
 static void
-taskLast (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+taskLast (void *cls)
 {
   int *ok = cls;
 
@@ -85,11 +87,13 @@
 
 
 static void
-taskRd (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+taskRd (void *cls)
 {
   static char c;
   int *ok = cls;
+  const struct GNUNET_SCHEDULER_TaskContext *tc;
 
+  tc = GNUNET_SCHEDULER_get_task_context ();
   GNUNET_assert (7 == *ok);
   GNUNET_assert (GNUNET_NETWORK_fdset_handle_isset (tc->read_ready, fds[0]));
   GNUNET_assert (1 == GNUNET_DISK_file_read (fds[0], &c, 1));
@@ -101,7 +105,7 @@
 
 
 static void
-task4 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task4 (void *cls)
 {
   int *ok = cls;
 
@@ -119,7 +123,7 @@
 
 
 static void
-task1 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task1 (void *cls)
 {
   int *ok = cls;
 
@@ -148,7 +152,7 @@
 
 
 static void
-taskShutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+taskShutdown (void *cls)
 {
   int *ok = cls;
 
@@ -176,7 +180,7 @@
 
 #ifndef MINGW
 static void
-taskSig (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+taskSig (void *cls)
 {
   int *ok = cls;
 
@@ -204,7 +208,7 @@
 
 
 static void
-taskCancel (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+taskCancel (void *cls)
 {
   int *ok = cls;
 

Modified: gnunet/src/util/test_scheduler_delay.c
===================================================================
--- gnunet/src/util/test_scheduler_delay.c      2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/util/test_scheduler_delay.c      2016-04-09 23:14:03 UTC (rev 
37005)
@@ -41,11 +41,9 @@
  * Signature of the main function of a task.
  *
  * @param cls closure
- * @param tc context
  */
 static void
-test_task (void *cls,
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
+test_task (void *cls)
 {
   struct GNUNET_TIME_Absolute now;
 

Modified: gnunet/src/util/test_server.c
===================================================================
--- gnunet/src/util/test_server.c       2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/test_server.c       2016-04-09 23:14:03 UTC (rev 37005)
@@ -74,11 +74,9 @@
  * Final task invoked to clean up.
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-finish_up (void *cls,
-           const struct GNUNET_SCHEDULER_TaskContext *tc)
+finish_up (void *cls)
 {
   GNUNET_assert (7 == ok);
   ok = 0;
@@ -262,11 +260,9 @@
  * server.
  *
  * @param cls NULL
- * @param tc scheduler context
  */
 static void
-task (void *cls,
-      const struct GNUNET_SCHEDULER_TaskContext *tc)
+task (void *cls)
 {
   struct sockaddr_in sa;
   struct sockaddr *sap[2];

Modified: gnunet/src/util/test_server_disconnect.c
===================================================================
--- gnunet/src/util/test_server_disconnect.c    2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/util/test_server_disconnect.c    2016-04-09 23:14:03 UTC (rev 
37005)
@@ -41,7 +41,7 @@
 
 
 static void
-finish_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+finish_up (void *cls)
 {
   GNUNET_assert (ok == 5);
   ok = 0;
@@ -52,9 +52,10 @@
 
 
 static void
-notify_disconnect (void *cls, struct GNUNET_SERVER_Client *clientarg)
+notify_disconnect (void *cls,
+                   struct GNUNET_SERVER_Client *clientarg)
 {
-  if (clientarg == NULL)
+  if (NULL == clientarg)
     return;
   GNUNET_assert (ok == 4);
   ok = 5;
@@ -63,7 +64,7 @@
 
 
 static void
-server_disconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+server_disconnect (void *cls)
 {
   struct GNUNET_SERVER_Client *argclient = cls;
 
@@ -110,7 +111,7 @@
 
 
 static void
-task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task (void *cls)
 {
   struct sockaddr_in sa;
   struct sockaddr *sap[2];

Modified: gnunet/src/util/test_server_with_client.c
===================================================================
--- gnunet/src/util/test_server_with_client.c   2016-04-09 22:48:59 UTC (rev 
37004)
+++ gnunet/src/util/test_server_with_client.c   2016-04-09 23:14:03 UTC (rev 
37005)
@@ -40,7 +40,7 @@
 static int ok;
 
 static void
-send_done (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+send_done (void *cls)
 {
   struct GNUNET_SERVER_Client *argclient = cls;
 
@@ -94,7 +94,7 @@
 
 
 static void
-clean_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+clean_up (void *cls)
 {
   GNUNET_SERVER_destroy (server);
   server = NULL;
@@ -146,7 +146,7 @@
 
 
 static void
-task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task (void *cls)
 {
   struct sockaddr_in sa;
   struct sockaddr *sap[2];

Modified: gnunet/src/util/test_server_with_client_unix.c
===================================================================
--- gnunet/src/util/test_server_with_client_unix.c      2016-04-09 22:48:59 UTC 
(rev 37004)
+++ gnunet/src/util/test_server_with_client_unix.c      2016-04-09 23:14:03 UTC 
(rev 37005)
@@ -39,7 +39,7 @@
 
 
 static void
-send_done (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+send_done (void *cls)
 {
   struct GNUNET_SERVER_Client *argclient = cls;
 
@@ -74,7 +74,7 @@
 
 
 static void
-clean_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+clean_up (void *cls)
 {
   GNUNET_SERVER_destroy (server);
   server = NULL;
@@ -126,7 +126,7 @@
 
 
 static void
-task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task (void *cls)
 {
   struct sockaddr_un un;
   const char *unixpath = "/tmp/testsock";

Modified: gnunet/src/util/test_service.c
===================================================================
--- gnunet/src/util/test_service.c      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/test_service.c      2016-04-09 23:14:03 UTC (rev 37005)
@@ -41,7 +41,7 @@
 
 
 static void
-do_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_stop (void *cls)
 {
   if (NULL != client)
   {

Modified: gnunet/src/util/test_socks.c
===================================================================
--- gnunet/src/util/test_socks.c        2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/test_socks.c        2016-04-09 23:14:03 UTC (rev 37005)
@@ -126,7 +126,7 @@
 
 
 static void
-task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task (void *cls)
 {
   struct sockaddr_in sa;
   struct sockaddr *sap[2];

Modified: gnunet/src/util/test_speedup.c
===================================================================
--- gnunet/src/util/test_speedup.c      2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/util/test_speedup.c      2016-04-09 23:14:03 UTC (rev 37005)
@@ -47,7 +47,7 @@
  * @param tc scheduler context, unused
  */
 static void
-run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+run (void *cls)
 {
   cycles++;
   fprintf (stderr, "..%u", cycles);

Modified: gnunet/src/vpn/gnunet-service-vpn.c
===================================================================
--- gnunet/src/vpn/gnunet-service-vpn.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/vpn/gnunet-service-vpn.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -2866,11 +2866,9 @@
  * Function scheduled as very last function, cleans up after us
  *
  * @param cls unused
- * @param tc unused
  */
 static void
-cleanup (void *cls,
-         const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup (void *cls)
 {
   unsigned int i;
 

Modified: gnunet/src/vpn/gnunet-vpn.c
===================================================================
--- gnunet/src/vpn/gnunet-vpn.c 2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/vpn/gnunet-vpn.c 2016-04-09 23:14:03 UTC (rev 37005)
@@ -95,7 +95,7 @@
  * Shutdown.
  */
 static void
-do_disconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_disconnect (void *cls)
 {
   if (NULL != request)
   {

Modified: gnunet/src/vpn/vpn_api.c
===================================================================
--- gnunet/src/vpn/vpn_api.c    2016-04-09 22:48:59 UTC (rev 37004)
+++ gnunet/src/vpn/vpn_api.c    2016-04-09 23:14:03 UTC (rev 37005)
@@ -358,12 +358,10 @@
 /**
  * Connect to the VPN service and start again to transmit our requests.
  *
- * @param cls the 'struct GNUNET_VPN_Handle *'
- * @param tc scheduler context
+ * @param cls the `struct GNUNET_VPN_Handle *`
  */
 static void
-connect_task (void *cls,
-             const struct GNUNET_SCHEDULER_TaskContext *tc)
+connect_task (void *cls)
 {
   struct GNUNET_VPN_Handle *vh = cls;
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]