Skip to content

Commit

Permalink
[sensorfw-core] Do not timeout while reading data
Browse files Browse the repository at this point in the history
Just wait for socket connection to give up.
  • Loading branch information
bellegarde-c committed Feb 10, 2025
1 parent 934e02f commit f42d4d5
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 12 deletions.
28 changes: 16 additions & 12 deletions sensorfw-core/sensorfw_common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ repowerd::Sensorfw::~Sensorfw()
stop();
release_sensor();
m_socket->dropConnection();
read_loop.join();
}

const char* repowerd::Sensorfw::plugin_string() const
Expand Down Expand Up @@ -125,6 +126,18 @@ bool repowerd::Sensorfw::load_plugin()
return the_result;
}

void repowerd::Sensorfw::run_socket_reader()
{
read_loop = std::thread([this](){
while (m_socket->isConnected()) {
if (m_socket->socket()->waitForReadyRead(-1)) {
data_recived_impl();
}
}

});
}

void repowerd::Sensorfw::request_sensor()
{
int constexpr timeout_default = 100;
Expand Down Expand Up @@ -191,15 +204,9 @@ void repowerd::Sensorfw::start()
return;

m_running = true;
read_loop = std::thread([this](){
log->log(log_tag, "Eventloop started");
while (m_running) {
if (m_socket->socket()->waitForReadyRead(10))
data_recived_impl();
}
m_running = false;
log->log(log_tag, "Eventloop stopped");
});

if (!read_loop.joinable())
run_socket_reader();

int constexpr timeout_default = 100;
auto const result = g_dbus_connection_call_sync(
Expand Down Expand Up @@ -250,9 +257,6 @@ void repowerd::Sensorfw::stop()
} else {
g_variant_unref(result);
}

read_loop.join();
read_loop = std::thread();
}

void repowerd::Sensorfw::set_interval(int interval) {
Expand Down
1 change: 1 addition & 0 deletions sensorfw-core/sensorfw_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ class Sensorfw {
void request_sensor();
bool release_sensor();
bool load_plugin();
void run_socket_reader();

const char* plugin_string() const;
const char* plugin_interface() const;
Expand Down

0 comments on commit f42d4d5

Please sign in to comment.