mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
uORBManager: allocate instance on first use
Previously _Instance was statically initialized. Now it is allocated at first use. Signed-off-by: Mark Charlebois <charlebm@gmail.com>
This commit is contained in:
parent
02850e0d16
commit
0c72d66ece
@ -50,15 +50,18 @@ SRCS = uORBDevices_posix.cpp \
|
||||
endif
|
||||
|
||||
ifeq ($(PX4_TARGET_OS),posix)
|
||||
SRCS += uORBTest_UnitTest.cpp
|
||||
SRCS += uORBTest_UnitTest.cpp
|
||||
endif
|
||||
ifeq ($(PX4_TARGET_OS),posix-arm)
|
||||
SRCS += uORBTest_UnitTest.cpp
|
||||
SRCS += uORBTest_UnitTest.cpp
|
||||
endif
|
||||
|
||||
ifneq ($(PX4_TARGET_OS),qurt)
|
||||
SRCS += Publication.cpp \
|
||||
Subscription.cpp
|
||||
endif
|
||||
|
||||
SRCS += objects_common.cpp \
|
||||
Publication.cpp \
|
||||
Subscription.cpp \
|
||||
uORBUtils.cpp \
|
||||
uORB.cpp \
|
||||
uORBMain.cpp
|
||||
|
||||
@ -346,7 +346,7 @@ private: // class methods
|
||||
);
|
||||
|
||||
private: // data members
|
||||
static Manager _Instance;
|
||||
static Manager *_Instance;
|
||||
// the communicator channel instance.
|
||||
uORBCommunicator::IChannel *_comm_channel;
|
||||
ORBSet _remote_subscriber_topics;
|
||||
|
||||
@ -42,13 +42,17 @@
|
||||
|
||||
|
||||
//========================= Static initializations =================
|
||||
uORB::Manager uORB::Manager::_Instance;
|
||||
uORB::Manager *uORB::Manager::_Instance = nullptr;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
uORB::Manager *uORB::Manager::get_instance()
|
||||
{
|
||||
return &_Instance;
|
||||
if (_Instance == nullptr) {
|
||||
_Instance = new uORB::Manager();
|
||||
}
|
||||
|
||||
return _Instance;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
@ -44,13 +44,17 @@
|
||||
|
||||
|
||||
//========================= Static initializations =================
|
||||
uORB::Manager uORB::Manager::_Instance;
|
||||
uORB::Manager *uORB::Manager::_Instance = nullptr;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
uORB::Manager *uORB::Manager::get_instance()
|
||||
{
|
||||
return &_Instance;
|
||||
if (_Instance == nullptr) {
|
||||
_Instance = new uORB::Manager();
|
||||
}
|
||||
|
||||
return _Instance;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user