Beispiel #1
0
void stop_timeout(timeout* t) {
  // if not in the list, it was deleted in callback_timeout_expired
  if (g_slist_find(timeout_list, t) || g_hash_table_lookup(multi_timeouts, t)) {
    if (t->multi_timeout) remove_from_multi_timeout((timeout*)t);
    timeout_list = g_slist_remove(timeout_list, t);
    free((void*)t);
  }
}
Beispiel #2
0
void change_timeout(timeout* t, int value_msec, int interval_msec,
                    void (*_callback)(), void* arg) {
  if (g_slist_find(timeout_list, t) == 0 &&
      g_hash_table_lookup(multi_timeouts, t) == 0)
    printf("programming error: timeout already deleted...");
  else {
    if (t->multi_timeout)
      remove_from_multi_timeout((timeout*)t);
    else
      timeout_list = g_slist_remove(timeout_list, t);
    add_timeout_intern(value_msec, interval_msec, _callback, arg, (timeout*)t);
  }
}
Beispiel #3
0
void change_timeout(timeout **t, int value_msec, int interval_msec, void(*_callback)(), void* arg)
{
	if (!((timeout_list && g_slist_find(timeout_list, *t)) ||
		  (multi_timeouts && g_hash_table_lookup(multi_timeouts, *t))))
		*t = add_timeout(value_msec, interval_msec, _callback, arg, t);
	else {
		if ((*t)->multi_timeout)
			remove_from_multi_timeout(*t);
		else
			timeout_list = g_slist_remove(timeout_list, *t);
		add_timeout_intern(value_msec, interval_msec, _callback, arg, *t);
	}
}
Beispiel #4
0
void stop_timeout(timeout* t)
{
	if (!t)
		return;
	// if not in the list, it was deleted in callback_timeout_expired
	if ((timeout_list && g_slist_find(timeout_list, t)) ||
		(multi_timeouts && g_hash_table_lookup(multi_timeouts, t))) {
		if (multi_timeouts && t->multi_timeout)
			remove_from_multi_timeout(t);
		if (timeout_list)
			timeout_list = g_slist_remove(timeout_list, t);
		if (t->self)
			*t->self = NULL;
		free(t);
	}
}