/* FIXME : need to integrate with clone/fork/exit to be accurate */
newproc = find_process_tid(ctx, tid, comm);
if (!newproc) {
/* FIXME : need to integrate with clone/fork/exit to be accurate */
newproc = find_process_tid(ctx, tid, comm);
if (!newproc) {
- newproc = malloc(sizeof(struct processtop));
- memset(newproc, 0, sizeof(struct processtop));
+ newproc = g_new0(struct processtop, 1);
newproc->tid = tid;
newproc->birth = timestamp;
newproc->process_files_table = g_ptr_array_new();
newproc->threads = g_ptr_array_new();
newproc->tid = tid;
newproc->birth = timestamp;
newproc->process_files_table = g_ptr_array_new();
newproc->threads = g_ptr_array_new();
- newproc->perf = g_hash_table_new(g_direct_hash, g_direct_equal);
- newproc->iostream = malloc(sizeof(struct iostream));
+ newproc->perf = g_hash_table_new(g_str_hash, g_str_equal);
+ newproc->iostream = g_new0(struct iostream, 1);
newproc->iostream->ret_read = 0;
newproc->iostream->ret_write = 0;
newproc->iostream->ret_total = 0;
newproc->iostream->ret_read = 0;
newproc->iostream->ret_write = 0;
newproc->iostream->ret_total = 0;
newperf->count = ((struct perfcounter *) value)->count;
newperf->visible = ((struct perfcounter *) value)->visible;
newperf->sort = ((struct perfcounter *) value)->sort;
newperf->count = ((struct perfcounter *) value)->count;
newperf->visible = ((struct perfcounter *) value)->visible;
newperf->sort = ((struct perfcounter *) value)->sort;
struct cputime *tmpcpu, *newcpu;
struct files *tmpfile, *newfile;
struct cputime *tmpcpu, *newcpu;
struct files *tmpfile, *newfile;
- dst = malloc(sizeof(struct lttngtop));
- dst = memset(dst, 0, sizeof(struct lttngtop));
+ dst = g_new0(struct lttngtop, 1);
dst->start = start;
dst->end = end;
dst->process_table = g_ptr_array_new();
dst->files_table = g_ptr_array_new();
dst->cpu_table = g_ptr_array_new();
dst->start = start;
dst->end = end;
dst->process_table = g_ptr_array_new();
dst->files_table = g_ptr_array_new();
dst->cpu_table = g_ptr_array_new();
rotate_cputime(end);
g_hash_table_foreach(lttngtop.perf_list, copy_perf_counter, dst->perf_list);
for (i = 0; i < lttngtop.process_table->len; i++) {
tmp = g_ptr_array_index(lttngtop.process_table, i);
rotate_cputime(end);
g_hash_table_foreach(lttngtop.perf_list, copy_perf_counter, dst->perf_list);
for (i = 0; i < lttngtop.process_table->len; i++) {
tmp = g_ptr_array_index(lttngtop.process_table, i);
memcpy(new, tmp, sizeof(struct processtop));
new->threads = g_ptr_array_new();
new->comm = strdup(tmp->comm);
new->process_files_table = g_ptr_array_new();
memcpy(new, tmp, sizeof(struct processtop));
new->threads = g_ptr_array_new();
new->comm = strdup(tmp->comm);
new->process_files_table = g_ptr_array_new();
memcpy(new->iostream, tmp->iostream, sizeof(struct iostream));
/* compute the stream speed */
memcpy(new->iostream, tmp->iostream, sizeof(struct iostream));
/* compute the stream speed */
- if (end - start != 0)
- {
- time = (end - start)/NSEC_PER_SEC;
- new->iostream->ret_read = new->iostream->ret_read/(time);
- new->iostream->ret_write = new->iostream->ret_write/(time);
+ if (end - start != 0) {
+ time = (end - start) / NSEC_PER_SEC;
+ new->iostream->ret_read = new->iostream->ret_read / time;
+ new->iostream->ret_write = new->iostream->ret_write / time;
}
for (j = 0; j < tmp->process_files_table->len; j++) {
tmpfile = g_ptr_array_index(tmp->process_files_table, j);
}
for (j = 0; j < tmp->process_files_table->len; j++) {
tmpfile = g_ptr_array_index(tmp->process_files_table, j);
*/
if (tmp->death > 0 && tmp->death < end) {
g_ptr_array_remove(tmp->process_files_table, tmpfile);
*/
if (tmp->death > 0 && tmp->death < end) {
g_ptr_array_remove(tmp->process_files_table, tmpfile);
*/
if (tmp->death > 0 && tmp->death < end) {
g_ptr_array_remove(lttngtop.process_table, tmp);
*/
if (tmp->death > 0 && tmp->death < end) {
g_ptr_array_remove(lttngtop.process_table, tmp);
g_ptr_array_free(tmp->threads, TRUE);
free(tmp->comm);
g_ptr_array_free(tmp->process_files_table, TRUE);
g_ptr_array_free(tmp->threads, TRUE);
free(tmp->comm);
g_ptr_array_free(tmp->process_files_table, TRUE);
}
}
rotate_perfcounter();
for (i = 0; i < lttngtop.cpu_table->len; i++) {
tmpcpu = g_ptr_array_index(lttngtop.cpu_table, i);
}
}
rotate_perfcounter();
for (i = 0; i < lttngtop.cpu_table->len; i++) {
tmpcpu = g_ptr_array_index(lttngtop.cpu_table, i);
g_hash_table_foreach(tmpcpu->perf, copy_perf_counter, newcpu->perf);
/*
* note : we don't care about the current process pointer in the copy
g_hash_table_foreach(tmpcpu->perf, copy_perf_counter, newcpu->perf);
/*
* note : we don't care about the current process pointer in the copy
/* create the threads index if required */
for (i = 0; i < dst->process_table->len; i++) {
tmp = g_ptr_array_index(dst->process_table, i);
/* create the threads index if required */
for (i = 0; i < dst->process_table->len; i++) {
tmp = g_ptr_array_index(dst->process_table, i);