Пример #1
0
static int test_abort_initiate(noit_module_t *self, noit_check_t *check,
                               noit_check_t *cause) {
  test_abort_check_info_t *ci = check->closure;
  struct timeval __now;
  const char *v;

  noitL(nlerr, "test_abort_initiate\n");
  /* We cannot be running */
  BAIL_ON_RUNNING_CHECK(check);
  check->flags |= NP_RUNNING;

  ci->self = self;
  ci->check = check;
  ci->timeout = 30;
  if(noit_hash_retr_str(check->config, "sleep", strlen("sleep"), &v)) {
    ci->timeout = atof(v);
  }
  ci->ignore_signals = 0;
  if(noit_hash_retr_str(check->config, "ignore_signals", strlen("ignore_signals"), &v)) {
    if(!strcmp(v, "true")) ci->ignore_signals = 1;
  }
  ci->timed_out = 1;

  ci->method = 0;
  if(noit_hash_retr_str(check->config, "method", strlen("method"), &v)) {
    if(!strcmp(v, "evil")) ci->method = EVENTER_EVIL_BRUTAL;
    else if(!strcmp(v, "deferred")) ci->method = EVENTER_CANCEL_DEFERRED;
    else if(!strcmp(v, "asynch")) ci->method = EVENTER_CANCEL_ASYNCH;
  }
  gettimeofday(&__now, NULL);
  memcpy(&check->last_fire_time, &__now, sizeof(__now));

  /* Register a handler for the worker */
  noit_check_run_full_asynch_opts(check, test_abort_drive_session, ci->method);
  return 0;
}
Пример #2
0
void
noit_check_run_full_asynch(noit_check_t *check, eventer_func_t callback) {
  noit_check_run_full_asynch_opts(check, callback,
                                  EVENTER_DEFAULT_ASYNCH_ABORT);
}