Ignore:
Timestamp:
2012-01-22T14:18:38Z (12 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
49ec568, fcae007
Parents:
eb2efc7
Message:

Prevent callbacks from racing. This was probably the culprit which was
causing sometimes the mouse, sometimes the network adapter not to be
discovered.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/input/generic/input.c

    reb2efc7 r10a5479d  
    3939#include <adt/list.h>
    4040#include <bool.h>
     41#include <fibril_synch.h>
    4142#include <ipc/services.h>
    4243#include <ipc/input.h>
     
    8384async_sess_t *irc_sess = NULL;
    8485
     86static FIBRIL_MUTEX_INITIALIZE(discovery_lock);
     87
    8588void kbd_push_data(kbd_dev_t *kdev, sysarg_t data)
    8689{
     
    593596        int rc;
    594597       
     598        fibril_mutex_lock(&discovery_lock);
     599       
    595600        rc = dev_check_new_kbdevs();
    596         if (rc != EOK)
     601        if (rc != EOK) {
     602                fibril_mutex_unlock(&discovery_lock);
    597603                return rc;
     604        }
    598605       
    599606        rc = dev_check_new_mousedevs();
    600         if (rc != EOK)
     607        if (rc != EOK) {
     608                fibril_mutex_unlock(&discovery_lock);
    601609                return rc;
    602 
     610        }
     611       
     612        fibril_mutex_unlock(&discovery_lock);
     613       
    603614        return EOK;
    604615}
Note: See TracChangeset for help on using the changeset viewer.