Changeset 3cf862f in mainline for uspace/srv/logger/writer.c


Ignore:
Timestamp:
2012-08-17T10:41:54Z (12 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f5da671
Parents:
bf9ac4e8
Message:

Add basic locking to logger

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/logger/writer.c

    rbf9ac4e8 r3cf862f  
    5656                return NULL;
    5757
    58         logger_log_t *log = find_or_create_log(name, parent);
     58        logger_log_t *log = find_or_create_log_and_acquire(name, parent);
    5959
    6060        free(name);
     
    6565static int handle_receive_message(sysarg_t log_id, sysarg_t level)
    6666{
    67         logger_log_t *log = find_log_by_id(log_id);
     67        logger_log_t *log = find_log_by_id_and_acquire(log_id);
    6868        if (log == NULL)
    6969                return ENOENT;
    7070
    71         void *message;
     71        void *message = NULL;
    7272        int rc = async_data_write_accept(&message, true, 1, 0, 0, NULL);
    7373        if (rc != EOK)
    74                 return rc;
     74                goto leave;
    7575
    7676        if (!shall_log_message(log, level)) {
    77                 free(message);
    78                 return EOK;
     77                rc = EOK;
     78                goto leave;
    7979        }
    8080
     
    8383            (const char *) message);
    8484
     85        rc = EOK;
     86
     87leave:
     88        log_release(log);
    8589        free(message);
    8690
    87         return EOK;
     91        return rc;
    8892}
    8993
     
    109113                                break;
    110114                        }
     115                        log_release(log);
    111116                        async_answer_1(callid, EOK, (sysarg_t) log);
    112117                        break;
Note: See TracChangeset for help on using the changeset viewer.