* @author Christian Grothoff
*/
#include "platform.h"
-#include "gnunet_common.h"
-#include "gnunet_os_lib.h"
-#include "gnunet_scheduler_lib.h"
-#include "gnunet_signal_lib.h"
-#include "gnunet_time_lib.h"
+#include "gnunet_util_lib.h"
#include "disk.h"
#define LOG(kind,...) GNUNET_log_from (kind, "util-scheduler", __VA_ARGS__)
reason |= GNUNET_SCHEDULER_REASON_WRITE_READY;
if (reason == 0)
return GNUNET_NO; /* not ready */
- reason |= GNUNET_SCHEDULER_REASON_PREREQ_DONE;
+ reason |= GNUNET_SCHEDULER_REASON_PREREQ_DONE;
task->reason = reason;
return GNUNET_YES;
}
pos = pending;
while (pos != NULL)
{
- LOG (GNUNET_ERROR_TYPE_DEBUG,
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
"Checking readiness of task: %llu / %p\n",
pos->id, pos->callback_cls);
next = pos->next;
if (GNUNET_TIME_absolute_get_duration (pos->start_time).rel_value_us >
DELAY_THRESHOLD.rel_value_us)
{
- LOG (GNUNET_ERROR_TYPE_DEBUG,
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
"Task %llu took %s to be scheduled\n",
(unsigned long long) pos->id,
GNUNET_STRINGS_relative_time_to_string (GNUNET_TIME_absolute_get_duration (pos->start_time), GNUNET_YES));
(pos->write_fd != -1) &&
(!GNUNET_NETWORK_fdset_test_native (ws, pos->write_fd)))
GNUNET_abort (); // added to ready in previous select loop!
- LOG (GNUNET_ERROR_TYPE_DEBUG,
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
"Running task: %llu / %p\n", pos->id,
pos->callback_cls);
pos->callback (pos->callback_cls, &tc);
int ret;
struct GNUNET_SIGNAL_Context *shc_int;
struct GNUNET_SIGNAL_Context *shc_term;
+#if (SIGTERM != GNUNET_TERM_SIG)
+ struct GNUNET_SIGNAL_Context *shc_gterm;
+#endif
#ifndef MINGW
struct GNUNET_SIGNAL_Context *shc_quit;
LOG (GNUNET_ERROR_TYPE_DEBUG, "Registering signal handlers\n");
shc_int = GNUNET_SIGNAL_handler_install (SIGINT, &sighandler_shutdown);
shc_term = GNUNET_SIGNAL_handler_install (SIGTERM, &sighandler_shutdown);
+#if (SIGTERM != GNUNET_TERM_SIG)
+ shc_gterm = GNUNET_SIGNAL_handler_install (GNUNET_TERM_SIG, &sighandler_shutdown);
+#endif
#ifndef MINGW
shc_pipe = GNUNET_SIGNAL_handler_install (SIGPIPE, &sighandler_pipe);
shc_quit = GNUNET_SIGNAL_handler_install (SIGQUIT, &sighandler_shutdown);
}
GNUNET_SIGNAL_handler_uninstall (shc_int);
GNUNET_SIGNAL_handler_uninstall (shc_term);
+#if (SIGTERM != GNUNET_TERM_SIG)
+ GNUNET_SIGNAL_handler_install (shc_gterm);
+#endif
#ifndef MINGW
GNUNET_SIGNAL_handler_uninstall (shc_pipe);
GNUNET_SIGNAL_handler_uninstall (shc_quit);
GNUNET_SCHEDULER_add_with_priority (enum GNUNET_SCHEDULER_Priority prio,
GNUNET_SCHEDULER_Task task, void *task_cls)
{
- return GNUNET_SCHEDULER_add_select (prio,
+ return GNUNET_SCHEDULER_add_select (prio,
GNUNET_TIME_UNIT_ZERO, NULL, NULL, task,
task_cls);
}
* to run) might get to run first. Just as with delays, clients must
* not rely on any particular order of execution between tasks
* scheduled concurrently.
- *
+ *
* The task will be run with the DEFAULT priority.
*
* @param task main function of the task
*/
#ifndef MINGW
static GNUNET_SCHEDULER_TaskIdentifier
-add_without_sets (struct GNUNET_TIME_Relative delay,
+add_without_sets (struct GNUNET_TIME_Relative delay,
enum GNUNET_SCHEDULER_Priority priority,
int rfd, int wfd,
GNUNET_SCHEDULER_Task task, void *task_cls)
GNUNET_NETWORK_fdset_destroy (rs);
return ret;
#else
- return add_without_sets (delay,
+ return add_without_sets (delay,
priority,
GNUNET_NETWORK_get_fd (rfd), -1, task,
task_cls);
return ret;
#else
GNUNET_assert (GNUNET_NETWORK_get_fd (wfd) >= 0);
- return add_without_sets (delay,
+ return add_without_sets (delay,
GNUNET_SCHEDULER_PRIORITY_DEFAULT,
-1, GNUNET_NETWORK_get_fd (wfd), task,
task_cls);
int fd;
GNUNET_DISK_internal_file_handle_ (rfd, &fd, sizeof (int));
- return add_without_sets (delay,
+ return add_without_sets (delay,
GNUNET_SCHEDULER_PRIORITY_DEFAULT,
fd, -1, task, task_cls);
GNUNET_DISK_internal_file_handle_ (wfd, &fd, sizeof (int));
GNUNET_assert (fd >= 0);
- return add_without_sets (delay,
+ return add_without_sets (delay,
GNUNET_SCHEDULER_PRIORITY_DEFAULT,
-1, fd, task, task_cls);