Skip to content
Snippets Groups Projects
Commit 000185eb authored by Eric Müller's avatar Eric Müller :mountain_bicyclist:
Browse files

fix: add missing mutexes

Change-Id: I24155f988806438883f4f82fb174efcca1308787
parent 21fbcb0a
No related branches found
No related tags found
No related merge requests found
...@@ -313,7 +313,7 @@ private: ...@@ -313,7 +313,7 @@ private:
void signal_pending_upload_while_locked(session_id_t const& session_id, bool); void signal_pending_upload_while_locked(session_id_t const& session_id, bool);
void log_session(session_id_t const& session_id); void log_session_while_locked(session_id_t const& session_id);
std::size_t get_total_refcount_while_locked() const; std::size_t get_total_refcount_while_locked() const;
}; };
......
...@@ -119,7 +119,7 @@ template <typename W> ...@@ -119,7 +119,7 @@ template <typename W>
void SessionStorage<W>::erase_session_while_locked(session_id_t const& session_id) void SessionStorage<W>::erase_session_while_locked(session_id_t const& session_id)
{ {
RCF_LOG_TRACE(m_log, "Erasing session: " << session_id); RCF_LOG_TRACE(m_log, "Erasing session: " << session_id);
log_session(session_id); log_session_while_locked(session_id);
m_session_user_id.erase(session_id); m_session_user_id.erase(session_id);
m_session_hw_id.erase(session_id); m_session_hw_id.erase(session_id);
m_session_duration.erase(session_id); m_session_duration.erase(session_id);
...@@ -513,27 +513,33 @@ template <typename W> ...@@ -513,27 +513,33 @@ template <typename W>
void SessionStorage<W>::accumulate_wallclock_runtime( void SessionStorage<W>::accumulate_wallclock_runtime(
session_id_t const& session_id, size_t const duration) session_id_t const& session_id, size_t const duration)
{ {
m_session_duration.at(session_id) += duration; std::lock_guard const lk{m_mutex};
try {
m_session_duration.at(session_id) += duration;
} catch (std::out_of_range const& error) {
RCF_LOG_ERROR(m_log, "accumulate_wallclock_runtime(): Didn't find session id: " << session_id << ".");
}
} }
template <typename W> template <typename W>
void SessionStorage<W>::set_session_meta_info(session_id_t const& session_id, user_id_t const user_id, std::string const hw_id) void SessionStorage<W>::set_session_meta_info(session_id_t const& session_id, user_id_t const user_id, std::string const hw_id)
{ {
std::lock_guard const lk{m_mutex};
m_session_user_id[session_id] = user_id; m_session_user_id[session_id] = user_id;
m_session_hw_id[session_id] = hw_id; m_session_hw_id[session_id] = hw_id;
} }
template <typename W> template <typename W>
void SessionStorage<W>::log_session(session_id_t const& session_id) void SessionStorage<W>::log_session_while_locked(session_id_t const& session_id)
{ {
std::stringstream msg; std::stringstream msg;
try { try {
msg << "hxlog hw_id=" << m_session_hw_id.at(session_id) msg << "hxlog hw_id=" << m_session_hw_id.at(session_id)
<< " user_id=" << m_session_user_id.at(session_id) << " session=" << session_id << " user_id=" << m_session_user_id.at(session_id) << " session=" << session_id
<< " duration=" << m_session_duration.at(session_id) << " duration=" << m_session_duration.at(session_id)
<< " runs=" << m_session_to_sequence_num.at(session_id); << " runs=" << m_session_to_sequence_num.at(session_id);
} catch (std::out_of_range const& error) { } catch (std::out_of_range const& error) {
RCF_LOG_ERROR(m_log, "log_session(): Didn't find session id: " << session_id << "."); RCF_LOG_ERROR(m_log, "log_session_while_locked(): Didn't find session id: " << session_id << ".");
} }
RCF_LOG_INFO(m_log, msg.str()); RCF_LOG_INFO(m_log, msg.str());
openlog(NULL, (LOG_NDELAY | LOG_PID | LOG_CONS), LOG_USER); openlog(NULL, (LOG_NDELAY | LOG_PID | LOG_CONS), LOG_USER);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment