Browse Source

The parameter system is supposed to have a lock; implement one.

sbg
px4dev 12 years ago
parent
commit
7e0da345f0
  1. 7
      src/modules/systemlib/param/param.c

7
src/modules/systemlib/param/param.c

@ -48,6 +48,7 @@
#include <unistd.h> #include <unistd.h>
#include <systemlib/err.h> #include <systemlib/err.h>
#include <errno.h> #include <errno.h>
#include <semaphore.h>
#include <sys/stat.h> #include <sys/stat.h>
@ -95,18 +96,20 @@ ORB_DEFINE(parameter_update, struct parameter_update_s);
/** parameter update topic handle */ /** parameter update topic handle */
static orb_advert_t param_topic = -1; static orb_advert_t param_topic = -1;
static sem_t param_lock = { .semcount = 1 };
/** lock the parameter store */ /** lock the parameter store */
static void static void
param_lock(void) param_lock(void)
{ {
/* XXX */ do {} while (sem_wait(&param_lock) != 0);
} }
/** unlock the parameter store */ /** unlock the parameter store */
static void static void
param_unlock(void) param_unlock(void)
{ {
/* XXX */ sem_post(&param_lock);
} }
/** assert that the parameter store is locked */ /** assert that the parameter store is locked */

Loading…
Cancel
Save