sensor-hal: change strerror to strerror_r
authorkibak.yoon <kibak.yoon@samsung.com>
Fri, 1 Apr 2016 07:46:36 +0000 (16:46 +0900)
committerkibak.yoon <kibak.yoon@samsung.com>
Fri, 1 Apr 2016 12:47:01 +0000 (21:47 +0900)
* use thread-safe function(strerror_r)

Change-Id: I89366cc60f758be78ef7c6e8a9d6ac4b38e62942
Signed-off-by: kibak.yoon <kibak.yoon@samsung.com>
src/accel/accel.cpp
src/create.cpp
src/proxi/proxi.cpp
src/sensor_logs.h

index 6466c248e90c66035be49f9b6fd0a62f9939fc61..cc856b4473aa40df68f952e7132aefea0a4934ce 100644 (file)
@@ -91,7 +91,7 @@ accel_device::accel_device()
        m_interval_node = info.interval_node_path;
 
        if ((m_node_handle = open(m_data_node.c_str(), O_RDWR)) < 0) {
-               ERR("accel handle open fail for accel processor, error:%s\n", strerror(errno));
+               _ERRNO(errno, _E, "accel handle open fail for accel processor");
                throw ENXIO;
        }
 
index 0b6e2cd233b9385493eec47aacb45833d30e4956..33f54fcdf7472ed49818930995a7ac9dfde6d0be 100644 (file)
@@ -32,10 +32,10 @@ void create_sensor(const char *name)
        try {
                instance = new _sensor;
        } catch (std::exception &e) {
-               ERR("Failed to create %s sensor device, exception: %s", name, e.what());
+               ERR("Failed to create %s sensor device (%s)", name, e.what());
                return;
        } catch (int err) {
-               ERR("Failed to create %s sensor device, err: %d, cause: %s", name, err, strerror(err));
+               _ERRNO(err, _E, "Failed to create %s sensor device", name);
                return;
        }
 
index e029cdbe43fc75b1b1ff4ba7eaf489791bff3d91..819a5b6c7d9be2c7b06f6c73e1f8baae213a1fdf 100644 (file)
@@ -82,7 +82,7 @@ proxi_device::proxi_device()
        m_enable_node = info.enable_node_path;
 
        if ((m_node_handle = open(m_data_node.c_str(), O_RDWR)) < 0) {
-               ERR("accel handle open fail for accel processor, error:%s", strerror(errno));
+               _ERRNO(errno, _E, "proxi handle open fail for proxi device");
                throw ENXIO;
        }
 
@@ -154,7 +154,7 @@ bool proxi_device::update_value_input_event(void)
        int len = read(m_node_handle, &proxi_event, sizeof(proxi_event));
 
        if (len == -1) {
-               DBG("read(m_node_handle) is error:%s", strerror(errno));
+               _ERRNO(errno, _D, "Failed to read from m_node_handle[%d]", m_node_handle);
                return false;
        }
 
index 3385aadd98ee046c41a3b5c448ec4336c6a27f76..395abb19a26d4616d7f1f1a3cecdf64697d69f50 100644 (file)
@@ -61,6 +61,16 @@ enum sf_priority_type {
 #define _I INFO
 #define _D DBG
 
+#define _ERRNO(errno, tag, fmt, arg...) do { \
+               char buf[1024]; \
+               char *error = strerror_r(errno, buf, 1024); \
+               if (!error) { \
+                       _E("Failed to strerror_r()"); \
+                       break; \
+               } \
+               tag(fmt" (%s[%d])", ##arg, error, errno); \
+       } while (0)
+
 #if defined(_DEBUG)
 #  define warn_if(expr, fmt, arg...) do { \
                if(expr) { \