Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset d517c5b in mainline


Ignore:
Timestamp:
2012-04-14T22:39:37Z (8 years ago)
Author:
Sean Bartell <wingedtachikoma@…>
Branches:
master
Children:
2d37006
Parents:
22a8a9b
Message:

top: redraw immediately on mode change

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/top/top.c

    r22a8a9b rd517c5b  
    367367        printf("Reading initial data...\n");
    368368       
    369         if ((ret = read_data(&data_prev)) != NULL)
     369        if ((ret = read_data(&data)) != NULL)
    370370                goto out;
    371371       
    372372        /* Compute some rubbish to have initialised values */
    373         compute_percentages(&data_prev, &data_prev);
     373        compute_percentages(&data, &data);
    374374       
    375375        /* And paint screen until death */
    376376        while (true) {
    377377                int c = tgetchar(UPDATE_INTERVAL);
    378                 if (c < 0) {
    379                         if ((ret = read_data(&data)) != NULL) {
    380                                 free_data(&data);
    381                                 goto out;
    382                         }
    383                        
    384                         compute_percentages(&data_prev, &data);
    385                         sort_data(&data);
    386                         print_data(&data);
    387                         free_data(&data_prev);
    388                         data_prev = data;
    389                        
    390                         continue;
    391                 }
    392                
     378
    393379                switch (c) {
     380                        case -1: /* timeout */
     381                                data_prev = data;
     382                                if ((ret = read_data(&data)) != NULL) {
     383                                        free_data(&data_prev);
     384                                        goto out;
     385                                }
     386                               
     387                                compute_percentages(&data_prev, &data);
     388                                free_data(&data_prev);
     389                                break;
    394390                        case 't':
    395                                 print_warning("Showing task statistics");
    396391                                op_mode = OP_TASKS;
    397392                                break;
    398393                        case 'i':
    399                                 print_warning("Showing IPC statistics");
    400394                                op_mode = OP_IPC;
    401395                                break;
    402396                        case 'e':
    403                                 print_warning("Showing exception statistics");
    404397                                op_mode = OP_EXCS;
    405398                                break;
    406399                        case 'h':
    407                                 print_warning("Showing help");
    408400                                op_mode = OP_HELP;
    409401                                break;
     
    419411                                        break;
    420412                                }
     413                                /* fallthrough */
    421414                        default:
    422415                                print_warning("Unknown command \"%c\", use \"h\" for help", c);
    423                                 break;
     416                                continue; /* don't redraw */
    424417                }
     418
     419                sort_data(&data);
     420                print_data(&data);
    425421        }
    426422       
    427423out:
    428424        screen_done();
    429         free_data(&data_prev);
     425        free_data(&data);
    430426       
    431427        if (ret != NULL) {
Note: See TracChangeset for help on using the changeset viewer.