#include "hud/hud_private.h"
#include "util/list.h"
#include "os/os_time.h"
+#include "os/os_thread.h"
#include "util/u_memory.h"
#include <stdio.h>
#include <unistd.h>
*/
static int gsensors_temp_count = 0;
static struct list_head gsensors_temp_list;
+static mtx_t gsensor_temp_mutex = _MTX_INITIALIZER_NP;
struct sensors_temp_info
{
hud_get_num_sensors(bool displayhelp)
{
/* Return the number of sensors detected. */
- if (gsensors_temp_count)
+ mtx_lock(&gsensor_temp_mutex);
+ if (gsensors_temp_count) {
+ mtx_unlock(&gsensor_temp_mutex);
return gsensors_temp_count;
+ }
int ret = sensors_init(NULL);
- if (ret)
+ if (ret) {
+ mtx_unlock(&gsensor_temp_mutex);
return 0;
+ }
list_inithead(&gsensors_temp_list);
}
}
+ mtx_unlock(&gsensor_temp_mutex);
return gsensors_temp_count;
}