From: kibak.yoon Date: Mon, 25 Jan 2016 11:33:32 +0000 (+0900) Subject: sensord: share the lock in physical sensors X-Git-Tag: accepted/tizen/mobile/20160216.102843~1^2~30 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0b77b5af15e4aaa6b77a6f2b48a61975db008e24;p=platform%2Fcore%2Fsystem%2Fsensord.git sensord: share the lock in physical sensors - lock the command flow and event flow using same mutex in physical_sensor Change-Id: I8ed6c061448c56f0b09e1a6b45709c1ff8e311ca Signed-off-by: kibak.yoon --- diff --git a/src/server/physical_sensor.cpp b/src/server/physical_sensor.cpp index 71de409..3c6f697 100644 --- a/src/server/physical_sensor.cpp +++ b/src/server/physical_sensor.cpp @@ -22,6 +22,8 @@ #define UNKNOWN_NAME "UNKNOWN_SENSOR" +cmutex physical_sensor::m_mutex; + physical_sensor::physical_sensor() : m_sensor_device(NULL) { diff --git a/src/server/physical_sensor.h b/src/server/physical_sensor.h index 2c7742f..5abc41b 100644 --- a/src/server/physical_sensor.h +++ b/src/server/physical_sensor.h @@ -47,6 +47,8 @@ public: virtual int get_sensor_event(sensor_event_t **event); private: + static cmutex m_mutex; + sensor_handle_t m_handle; sensor_device *m_sensor_device; diff --git a/src/server/sensor_base.cpp b/src/server/sensor_base.cpp index 0ff9dd1..7096862 100644 --- a/src/server/sensor_base.cpp +++ b/src/server/sensor_base.cpp @@ -49,7 +49,6 @@ sensor_type_t sensor_base::get_type(void) bool sensor_base::start() { - AUTOLOCK(m_mutex); AUTOLOCK(m_client_mutex); ++m_client; @@ -70,7 +69,6 @@ bool sensor_base::start() bool sensor_base::stop(void) { - AUTOLOCK(m_mutex); AUTOLOCK(m_client_mutex); --m_client; @@ -323,7 +321,6 @@ int sensor_base::get_permission(void) bool sensor_base::is_started(void) { - AUTOLOCK(m_mutex); AUTOLOCK(m_client_mutex); return m_started; @@ -404,52 +401,6 @@ bool sensor_base::push(sensor_event_t *event, int event_length) return true; } -/* -bool sensor_base::push(const sensor_event_t &event) -{ - AUTOLOCK(m_client_mutex); - - if (m_client <= 0) - return false; - - sensor_event_queue::get_instance().push(event); - return true; -} - -bool sensor_base::push(sensor_event_t *event) -{ - AUTOLOCK(m_client_mutex); - - if (m_client <= 0) - return false; - - sensor_event_queue::get_instance().push(event); - return true; -} - -bool sensor_base::push(const sensorhub_event_t &event) -{ - AUTOLOCK(m_client_mutex); - - if (m_client <= 0) - return false; - - sensor_event_queue::get_instance().push(event); - return true; -} - -bool sensor_base::push(sensorhub_event_t *event) -{ - AUTOLOCK(m_client_mutex); - - if (m_client <= 0) - return false; - - sensor_event_queue::get_instance().push(event); - return true; -} -*/ - unsigned long long sensor_base::get_timestamp(void) { struct timespec t; diff --git a/src/server/sensor_base.h b/src/server/sensor_base.h index 7ac3e98..000dfad 100644 --- a/src/server/sensor_base.h +++ b/src/server/sensor_base.h @@ -87,19 +87,11 @@ public: /* push event to queue */ bool push(sensor_event_t *event, int event_length); - /* - bool push(const sensor_event_t &event); - bool push(sensor_event_t *event); - bool push(const sensorhub_event_t &event); - bool push(sensorhub_event_t *event); - */ /* for sensorhub */ virtual long set_command(unsigned int cmd, long value); virtual int send_sensorhub_data(const char* data, int data_len); protected: - cmutex m_mutex; - void set_privilege(sensor_privilege_t privilege); void set_permission(int permission);