Beispiel #1
0
struct lbalance_task *lbalance_task_new(struct lbalance *lb)
{
	struct lbalance_task *task = malloc(sizeof *task);
	if (!task)
		return NULL;

	if (lb->num_tasks + 1 == lb->max_stats) {
		struct stats *s = realloc(lb->stats,
					  sizeof(*s) * (lb->max_stats + 1));
		if (!s) {
			free(task);
			return NULL;
		}
		lb->stats = s;
		lb->stats[lb->max_stats].num_stats = 0;
		lb->stats[lb->max_stats].work_rate = 0.0;
		lb->max_stats++;
	}

	task->lb = lb;
	gettimeofday(&task->start, NULL);

	/* Record that we ran num_tasks up until now. */
	update_tasks_sum(lb, &task->start);

	task->tasks_sum_start = lb->tasks_sum;
	tlist_add_tail(&lb->tasks, task, list);
	lb->num_tasks++;

	return task;
}
int main(int argc, char *argv[])
{
	struct tlist_children children;
	struct tlist_cousins cousins;
	struct child child = { "child" };
	struct cousin cousin = { "cousin" };

	tlist_init(&children);
	tlist_init(&cousins);
	tlist_add(&children, &child, list);
	tlist_add(&cousins, &cousin, list);
	tlist_del_from(&cousins, &cousin, list);
#ifdef FAIL
#if !HAVE_FLEXIBLE_ARRAY_MEMBER
#error Need flexible array members to check type
#endif
	tlist_add_tail(&children, &cousin, list);
#endif
	return 0;
}
Beispiel #3
0
static void xmalloc_stat_inc(struct xmalloc_stat *st)
{
	if (!tlist_entry_inline(&st->link))
		tlist_add_tail(&xmalloc_stat_list, st, link);
	++st->active;
}