On Wed, Apr 22, 2009 at 02:16:43PM +0530, Dhaval Giani wrote: > Add a new API to iterate through the tasks file to get > the list of all the tasks in a cgroup. > > Signed-off-by: Dhaval Giani <[email protected]> > > --- > include/libcgroup.h | 19 ++++++++++++++ > src/api.c | 69 > ++++++++++++++++++++++++++++++++++++++++++++++++++++ > src/libcgroup.map | 6 ++++ > 3 files changed, 94 insertions(+) > > Index: libcg/include/libcgroup.h > =================================================================== > --- libcg.orig/include/libcgroup.h > +++ libcg/include/libcgroup.h > @@ -274,6 +274,25 @@ int cgroup_read_stats_next(void **handle > > int cgroup_read_stats_end(void **handle); > > +/** > + * Read the tasks file to get the list of tasks in a cgroup > + * @cgroup: Name of the cgroup > + * @controller: Name of the cgroup subsystem > + * @handle: Handle to be used in the iteration > + * @pid: The pid read from the tasks file. Will be filled in by the API > + */ > +int cgroup_get_task_begin(char *cgroup, char *controller, void **handle, > + pid_t *pid); > + > +/** > + * Read the next task value > + * @handle: The handle used for iterating > + * @pid: The variable where the value will be stored > + * > + * return ECGEOF when the iterator finishes getting the list of tasks. > + */ > +int cgroup_get_task_next(void *handle, pid_t *pid); > +int cgroup_get_task_end(void *handle); > /* The wrappers for filling libcg structures */ > > struct cgroup *cgroup_new_cgroup(const char *name); > Index: libcg/src/api.c > =================================================================== > --- libcg.orig/src/api.c > +++ libcg/src/api.c > @@ -2407,3 +2407,72 @@ int cgroup_read_stats_begin(char *contro > *handle = fp; > return ret; > } > + > +int cgroup_get_task_end(void *handle) > +{ > + if (!cgroup_initialized) > + return ECGROUPNOTINITIALIZED; > + > + if (!handle) > + return ECGINVAL; > + > + fclose((FILE *) handle); > + handle = NULL;
No use setting handle to NULL here. It will be not be reflected in the caller. You may want to pass double pointer if want to ensure that. Regards, Bharata. ------------------------------------------------------------------------------ Stay on top of everything new and different, both inside and around Java (TM) technology - register by April 22, and save $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. 300 plus technical and hands-on sessions. Register today. Use priority code J9JMT32. http://p.sf.net/sfu/p _______________________________________________ Libcg-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libcg-devel
