if (NULL != rs->dnsout6)
GNUNET_NETWORK_fdset_set (rset, rs->dnsout6);
rs->read_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
REQUEST_TIMEOUT,
rset,
NULL,
if (NULL != rs->dnsout6)
GNUNET_NETWORK_fdset_set (rset, rs->dnsout6);
rs->read_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_absolute_get_remaining (rs->timeout),
rset,
NULL,
GNUNET_NETWORK_fdset_copy_native (wes, &es, max + 1);
httpd_task =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_HIGH,
- GNUNET_SCHEDULER_NO_TASK, tv, wrs, wws,
+ tv, wrs, wws,
&do_httpd, NULL);
GNUNET_NETWORK_fdset_destroy (wrs);
GNUNET_NETWORK_fdset_destroy (wws);
#endif
ti_download =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK, rtime, grs, gws,
+ rtime, grs, gws,
&task_download, multi);
GNUNET_NETWORK_fdset_destroy (gws);
GNUNET_NETWORK_fdset_destroy (grs);
GNUNET_NETWORK_fdset_copy_native (wes, &es, max + 1);
ret =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_HIGH,
- GNUNET_SCHEDULER_NO_TASK, tv, wrs, wws,
+ tv, wrs, wws,
&run_daemon, daemon_handle);
GNUNET_NETWORK_fdset_destroy (wrs);
GNUNET_NETWORK_fdset_destroy (wws);
enum GNUNET_SCHEDULER_Priority priority);
-/**
- * Schedule a new task to be run after the specified prerequisite task
- * has completed. It will be run with DEFAULT priority.
- *
- * * @param prerequisite_task run this task after the task with the given
- * task identifier completes (and any of our other
- * conditions, such as delay, read or write-readiness
- * are satisfied). Use GNUNET_SCHEDULER_NO_TASK to not have any dependency
- * on completion of other tasks (this will cause the task to run as
- * soon as possible).
- * @param task main function of the task
- * @param task_cls closure of task
- * @return unique task identifier for the job
- * only valid until "task" is started!
- */
-GNUNET_SCHEDULER_TaskIdentifier
-GNUNET_SCHEDULER_add_after (GNUNET_SCHEDULER_TaskIdentifier prerequisite_task,
- GNUNET_SCHEDULER_Task task, void *task_cls);
-
-
/**
* Schedule a new task to be run with a specified priority.
*
* || shutdown-active)
* </code>
*
- * * @param prio how important is this task?
- * @param prerequisite_task run this task after the task with the given
- * task identifier completes (and any of our other
- * conditions, such as delay, read or write-readiness
- * are satisfied). Use GNUNET_SCHEDULER_NO_TASK to not have any dependency
- * on completion of other tasks.
+ * @param prio how important is this task?
* @param delay how long should we wait? Use GNUNET_TIME_UNIT_FOREVER_REL for "forever",
* which means that the task will only be run after we receive SIGTERM
* @param rs set of file descriptors we want to read (can be NULL)
* only valid until "task" is started!
*/
GNUNET_SCHEDULER_TaskIdentifier
-GNUNET_SCHEDULER_add_select (enum GNUNET_SCHEDULER_Priority prio,
- GNUNET_SCHEDULER_TaskIdentifier prerequisite_task,
+GNUNET_SCHEDULER_add_select (enum GNUNET_SCHEDULER_Priority prio,
struct GNUNET_TIME_Relative delay,
const struct GNUNET_NETWORK_FDSet *rs,
const struct GNUNET_NETWORK_FDSet *ws,
* Current transmission request handle for this client, or NULL if no
* request is pending.
*/
- struct GNUNET_CONNECTION_TransmitHandle *th;
+ struct GNUNET_SERVER_TransmitHandle *th;
/**
* Our current position in the blacklisters list.
bc->bl_pos = bl->next;
if (bc->th != NULL)
{
- GNUNET_CONNECTION_notify_transmit_ready_cancel (bc->th);
+ GNUNET_SERVER_notify_transmit_ready_cancel (bc->th);
bc->th = NULL;
}
if (bc->task == GNUNET_SCHEDULER_NO_TASK)
}
if (NULL != bc->th)
{
- GNUNET_CONNECTION_notify_transmit_ready_cancel (bc->th);
+ GNUNET_SERVER_notify_transmit_ready_cancel (bc->th);
bc->th = NULL;
}
GNUNET_free (bc);
/**
* Current transmit request handle.
*/
- struct GNUNET_CONNECTION_TransmitHandle *th;
+ struct GNUNET_SERVER_TransmitHandle *th;
/**
* Length of the list of messages pending for this client.
GNUNET_CONTAINER_DLL_remove (clients_head, clients_tail, tc);
if (tc->th != NULL)
{
- GNUNET_CONNECTION_notify_transmit_ready_cancel (tc->th);
+ GNUNET_SERVER_notify_transmit_ready_cancel (tc->th);
tc->th = NULL;
}
GNUNET_break (0 == tc->message_count);
plugin->client_perform_task =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK, timeout, grs, gws,
+ timeout, grs, gws,
&client_run, plugin);
GNUNET_NETWORK_fdset_destroy (gws);
GNUNET_NETWORK_fdset_destroy (grs);
#endif
ret =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK, tv, wrs, wws,
+ tv, wrs, wws,
&server_v4_run, plugin);
}
if (daemon_handle == plugin->server_v6)
#endif
ret =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK, tv, wrs, wws,
+ tv, wrs, wws,
&server_v6_run, plugin);
}
GNUNET_NETWORK_fdset_destroy (wrs);
plugin->select_task =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
plugin->rs_v4,
plugin->ws_v4,
plugin->select_task_v6 =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
plugin->rs_v6,
plugin->ws_v6,
plugin->select_task =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
plugin->rs_v4,
plugin->ws_v4,
plugin->select_task_v6 =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
plugin->rs_v6,
plugin->ws_v6,
if (plugin->select_task != GNUNET_SCHEDULER_NO_TASK)
GNUNET_SCHEDULER_cancel (plugin->select_task);
plugin->select_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
plugin->rs_v4,
(plugin->ipv4_queue_head != NULL) ? plugin->ws_v4 : NULL,
if (plugin->select_task_v6 != GNUNET_SCHEDULER_NO_TASK)
GNUNET_SCHEDULER_cancel (plugin->select_task_v6);
plugin->select_task_v6 = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
plugin->rs_v6,
(plugin->ipv6_queue_head != NULL) ? plugin->ws_v6 : NULL,
plugin->select_task =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
plugin->rs_v4,
NULL,
plugin->select_task_v6 =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
plugin->rs_v6,
NULL,
plugin->select_task =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
plugin->rs,
plugin->ws,
GNUNET_SCHEDULER_cancel (plugin->select_task);
plugin->select_task =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
plugin->rs,
(plugin->msg_head != NULL) ? plugin->ws : NULL,
plugin->select_task =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
plugin->rs,
NULL,
}
-/**
- * Schedule a new task to be run after the specified prerequisite task
- * has completed. It will be run with the DEFAULT priority.
- *
- * @param prerequisite_task run this task after the task with the given
- * task identifier completes (and any of our other
- * conditions, such as delay, read or write-readiness
- * are satisfied). Use GNUNET_SCHEDULER_NO_TASK to not have any dependency
- * on completion of other tasks (this will cause the task to run as
- * soon as possible).
- * @param task main function of the task
- * @param task_cls closure of task
- * @return unique task identifier for the job
- * only valid until "task" is started!
- */
-GNUNET_SCHEDULER_TaskIdentifier
-GNUNET_SCHEDULER_add_after (GNUNET_SCHEDULER_TaskIdentifier prerequisite_task,
- GNUNET_SCHEDULER_Task task, void *task_cls)
-{
- return GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- prerequisite_task, GNUNET_TIME_UNIT_ZERO,
- NULL, NULL, task, task_cls);
-}
-
-
/**
* Schedule a new task to be run with a specified priority.
*
GNUNET_SCHEDULER_add_with_priority (enum GNUNET_SCHEDULER_Priority prio,
GNUNET_SCHEDULER_Task task, void *task_cls)
{
- return GNUNET_SCHEDULER_add_select (prio, GNUNET_SCHEDULER_NO_TASK,
+ return GNUNET_SCHEDULER_add_select (prio,
GNUNET_TIME_UNIT_ZERO, NULL, NULL, task,
task_cls);
}
ret =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_ZERO, NULL, NULL, task,
task_cls);
GNUNET_assert (pending->id == ret);
GNUNET_NETWORK_fdset_set (rs, rfd);
ret =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK, delay, rs, NULL,
+ delay, rs, NULL,
task, task_cls);
GNUNET_NETWORK_fdset_destroy (rs);
return ret;
GNUNET_NETWORK_fdset_set (ws, wfd);
ret =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK, delay, NULL, ws,
+ delay, NULL, ws,
task, task_cls);
GNUNET_NETWORK_fdset_destroy (ws);
return ret;
GNUNET_NETWORK_fdset_handle_set (rs, rfd);
ret =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK, delay, rs, NULL,
+ delay, rs, NULL,
task, task_cls);
GNUNET_NETWORK_fdset_destroy (rs);
return ret;
GNUNET_NETWORK_fdset_handle_set (ws, wfd);
ret =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
- GNUNET_SCHEDULER_NO_TASK, delay, NULL, ws,
+ delay, NULL, ws,
task, task_cls);
GNUNET_NETWORK_fdset_destroy (ws);
return ret;
* </code>
*
* @param prio how important is this task?
- * @param prerequisite_task run this task after the task with the given
- * task identifier completes (and any of our other
- * conditions, such as delay, read or write-readiness
- * are satisfied). Use GNUNET_SCHEDULER_NO_TASK to not have any dependency
- * on completion of other tasks.
* @param delay how long should we wait? Use GNUNET_TIME_UNIT_FOREVER_REL for "forever",
* which means that the task will only be run after we receive SIGTERM
* @param rs set of file descriptors we want to read (can be NULL)
*/
GNUNET_SCHEDULER_TaskIdentifier
GNUNET_SCHEDULER_add_select (enum GNUNET_SCHEDULER_Priority prio,
- GNUNET_SCHEDULER_TaskIdentifier prerequisite_task,
struct GNUNET_TIME_Relative delay,
const struct GNUNET_NETWORK_FDSet *rs,
const struct GNUNET_NETWORK_FDSet *ws,
#if PROFILE_DELAYS
t->start_time = GNUNET_TIME_absolute_get ();
#endif
- t->prereq_id = prerequisite_task;
t->timeout = GNUNET_TIME_relative_to_absolute (delay);
t->priority =
check_priority ((prio ==
/* ignore shutdown, someone else will take care of it! */
server->listen_task =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_HIGH,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL, r, NULL,
&process_listen_socket, server);
GNUNET_NETWORK_fdset_destroy (r);
/* listen for more! */
server->listen_task =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_HIGH,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL, r, NULL,
&process_listen_socket, server);
GNUNET_NETWORK_fdset_destroy (r);
GNUNET_NETWORK_fdset_set (r, ret->listen_sockets[i++]);
ret->listen_task =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_HIGH,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL, r, NULL,
&process_listen_socket, ret);
GNUNET_NETWORK_fdset_destroy (r);
#define VERBOSE GNUNET_NO
static void
-task3 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task2 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
int *ok = cls;
- /* t4 should be ready (albeit with lower priority) */
+ /* t3 should be ready (albeit with lower priority) */
GNUNET_assert (1 ==
GNUNET_SCHEDULER_get_load (GNUNET_SCHEDULER_PRIORITY_COUNT));
- GNUNET_assert (3 == *ok);
- (*ok) = 4;
-}
-
-
-static void
-task2 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
- int *ok = cls;
-
GNUNET_assert (2 == *ok);
(*ok) = 3;
- /* t3 will go before t4: higher priority */
- GNUNET_SCHEDULER_add_with_priority (GNUNET_SCHEDULER_PRIORITY_UI, &task3,
- cls);
}
+
static void
-task4 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task3 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
int *ok = cls;
- GNUNET_assert (4 == *ok);
- (*ok) = 5;
+ GNUNET_assert (3 == *ok);
+ (*ok) = 4;
}
struct GNUNET_DISK_PipeHandle *p;
static void
-task5 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task4 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
int *ok = cls;
- GNUNET_assert (5 == *ok);
+ GNUNET_assert (4 == *ok);
(*ok) = 6;
p = GNUNET_DISK_pipe (GNUNET_NO, GNUNET_NO, GNUNET_NO, GNUNET_NO);
GNUNET_assert (NULL != p);
task1 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
int *ok = cls;
- GNUNET_SCHEDULER_TaskIdentifier t2;
- GNUNET_SCHEDULER_TaskIdentifier t4;
GNUNET_assert (1 == *ok);
(*ok) = 2;
- /* t2 will go first -- prereq for all */
- t2 = GNUNET_SCHEDULER_add_after (GNUNET_SCHEDULER_NO_TASK, &task2, cls);
- /* t4 will go after t2 ('add after') and after t3 (priority) */
- t4 = GNUNET_SCHEDULER_add_after (t2, &task4, cls);
- /* t5 will go last (after p4) */
- GNUNET_SCHEDULER_add_after (t4, &task5, cls);
+ GNUNET_SCHEDULER_add_now (&task3, cls);
+ GNUNET_SCHEDULER_add_with_priority (GNUNET_SCHEDULER_PRIORITY_UI, &task2,
+ cls);
+ GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &task4, cls);
}
GNUNET_assert (1 == *ok);
*ok = 0;
- GNUNET_SCHEDULER_cancel (GNUNET_SCHEDULER_add_after
- (GNUNET_SCHEDULER_NO_TASK, &taskNeverRun, NULL));
+ GNUNET_SCHEDULER_cancel (GNUNET_SCHEDULER_add_now
+ (&taskNeverRun, NULL));
}