This fixes a race condition: uORB::Manager::get_instance() is used in a
multi-thread context, but the singleton initialization was not thread-safe.
Further, this avoids having to check for nullptr every time the singleton
is accessed.
uORB::Manager::initialize() is called when uorb is started. No one else
accesses the singleton before that point, because it is only used in the
orb_* methods, and in muorb. Both require uorb to be started already when
they are used.
This is necessary when using multiple instances of a topic. However it does
not free the underlying resources, as it is assumed they will be used again
at a later point.
* Qflight: add intersil sensor driver
* df_isl_wrapper: change driver lib name to isl
* posix-config: add df_isl_wrapper start command to eagle startup
* isl_wrapper: cleanup isl wrapper
* isl: remove unused option -R
* isl: change the driver name to isl29501
* DriverFramework: updated submodule again
This is to get the latest `make fix-style` changes.
* df_isl29501_wrapper: rename wrapper all the way
- either sensor combined or the replay topic where copied into
the union buffer but at times the memory was overwritten by other
topics which updated below
- this change makes sure that the two topics are copied into the union
buffer at the correct location in the code
There was the case where a param was changed on the Linux side but the
change did not get saved on the DSP side because the param was not in
the local list of changed params on the DSP side. On save, the param
index is now refreshed, and param_get is called on all params that have
changed. This is a hacky workaround but resolves the problem for now.
This test failed on the pixracer because the subscriber thread was too slow
and thus orb messages got lost. This behavior is expected, but the test
should not fail because of that, so we increase the sleeping time.