Compare commits
5 Commits
5cdb776c67
...
b47ad3fad1
Author | SHA1 | Date |
---|---|---|
Alex Sanchez-Stern | b47ad3fad1 | |
Admiral H. Curtiss | 2c83a256ae | |
Jordan Woyak | c3f66e83e6 | |
Alex Sanchez-Stern | 1252eba1cc | |
Alex Sanchez-Stern | d8d8b5a847 |
|
@ -124,6 +124,9 @@ private:
|
||||||
int m_shm_fd = 0;
|
int m_shm_fd = 0;
|
||||||
void* m_reserved_region = nullptr;
|
void* m_reserved_region = nullptr;
|
||||||
std::size_t m_reserved_region_size = 0;
|
std::size_t m_reserved_region_size = 0;
|
||||||
|
#ifndef ANDROID
|
||||||
|
std::string m_seg_name;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -30,20 +30,20 @@ MemArena::~MemArena() = default;
|
||||||
|
|
||||||
void MemArena::GrabSHMSegment(size_t size, std::string_view base_name)
|
void MemArena::GrabSHMSegment(size_t size, std::string_view base_name)
|
||||||
{
|
{
|
||||||
const std::string file_name = fmt::format("/{}.{}", base_name, getpid());
|
m_seg_name = fmt::format("/{}.{}", base_name, getpid());
|
||||||
m_shm_fd = shm_open(file_name.c_str(), O_RDWR | O_CREAT | O_EXCL, 0600);
|
m_shm_fd = shm_open(m_seg_name.c_str(), O_RDWR | O_CREAT | O_EXCL, 0600);
|
||||||
if (m_shm_fd == -1)
|
if (m_shm_fd == -1)
|
||||||
{
|
{
|
||||||
ERROR_LOG_FMT(MEMMAP, "shm_open failed: {}", strerror(errno));
|
ERROR_LOG_FMT(MEMMAP, "shm_open failed: {}", strerror(errno));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
shm_unlink(file_name.c_str());
|
|
||||||
if (ftruncate(m_shm_fd, size) < 0)
|
if (ftruncate(m_shm_fd, size) < 0)
|
||||||
ERROR_LOG_FMT(MEMMAP, "Failed to allocate low memory space");
|
ERROR_LOG_FMT(MEMMAP, "Failed to allocate low memory space");
|
||||||
}
|
}
|
||||||
|
|
||||||
void MemArena::ReleaseSHMSegment()
|
void MemArena::ReleaseSHMSegment()
|
||||||
{
|
{
|
||||||
|
shm_unlink(m_seg_name.c_str());
|
||||||
close(m_shm_fd);
|
close(m_shm_fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -541,7 +541,7 @@ void IOWindow::ConnectWidgets()
|
||||||
const auto lock = m_controller->GetStateLock();
|
const auto lock = m_controller->GetStateLock();
|
||||||
m_reference->State(0.0);
|
m_reference->State(0.0);
|
||||||
});
|
});
|
||||||
connect(this, &QWidget::destroyed, this, &IOWindow::TestOutputComplete);
|
connect(this, &IOWindow::closeEvent, this, &IOWindow::TestOutputComplete);
|
||||||
|
|
||||||
connect(m_button_box, &QDialogButtonBox::clicked, this, &IOWindow::OnDialogButtonPressed);
|
connect(m_button_box, &QDialogButtonBox::clicked, this, &IOWindow::OnDialogButtonPressed);
|
||||||
connect(m_devices_combo, &QComboBox::currentTextChanged, this, &IOWindow::OnDeviceChanged);
|
connect(m_devices_combo, &QComboBox::currentTextChanged, this, &IOWindow::OnDeviceChanged);
|
||||||
|
|
Loading…
Reference in New Issue