/* StarPU --- Runtime system for heterogeneous multicore architectures. * * Copyright (C) 2010-2017 CNRS * Copyright (C) 2009-2011,2014,2016 Université de Bordeaux * Copyright (C) 2011,2012 Inria * * StarPU is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or (at * your option) any later version. * * StarPU is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU Lesser General Public License in COPYING.LGPL for more details. */ /*! \defgroup API_Task_Lists Task Lists \struct starpu_task_list Stores a double-chained list of tasks \ingroup API_Task_Lists \var struct starpu_task *starpu_task_list::head head of the list \var struct starpu_task *starpu_task_list::tail tail of the list \fn void starpu_task_list_init(struct starpu_task_list *list) \ingroup API_Task_Lists Initialize a list structure \fn void starpu_task_list_push_front(struct starpu_task_list *list, struct starpu_task *task) \ingroup API_Task_Lists Push \p task at the front of \p list \fn void starpu_task_list_push_back(struct starpu_task_list *list, struct starpu_task *task) \ingroup API_Task_Lists Push \p task at the back of \p list \fn struct starpu_task *starpu_task_list_front(const struct starpu_task_list *list) \ingroup API_Task_Lists Get the front of \p list (without removing it) \fn struct starpu_task *starpu_task_list_back(const struct starpu_task_list *list) \ingroup API_Task_Lists Get the back of \p list (without removing it) \fn int starpu_task_list_empty(const struct starpu_task_list *list) \ingroup API_Task_Lists Test if \p list is empty \fn void starpu_task_list_erase(struct starpu_task_list *list, struct starpu_task *task) \ingroup API_Task_Lists Remove \p task from \p list \fn struct starpu_task *starpu_task_list_pop_front(struct starpu_task_list *list) \ingroup API_Task_Lists Remove the element at the front of \p list \fn struct starpu_task *starpu_task_list_pop_back(struct starpu_task_list *list) \ingroup API_Task_Lists Remove the element at the back of \p list \fn struct starpu_task *starpu_task_list_begin(const struct starpu_task_list *list) \ingroup API_Task_Lists Get the first task of \p list. \fn struct starpu_task *starpu_task_list_end(const struct starpu_task_list *list) \ingroup API_Task_Lists Get the end of \p list. \fn struct starpu_task *starpu_task_list_next(const struct starpu_task *task) \ingroup API_Task_Lists Get the next task of \p list. This is not erase-safe. \fn int starpu_task_list_ismember(const struct starpu_task_list *list, const struct starpu_task *look) \ingroup API_Task_Lists Test whether the given task \p look is contained in the \p list. */