webrtc_signaling_server: use g_autoptr with g_mutex_locker_new 89/261789/2
authorSeungbae Shin <seungbae.shin@samsung.com>
Mon, 26 Jul 2021 09:13:33 +0000 (18:13 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Mon, 26 Jul 2021 09:58:36 +0000 (18:58 +0900)
This makes it convenient to manipulate concurrent mechanisms such as mutex,
including unintentional infinite possessing of the resource.

https://developer.gnome.org/glib/stable/glib-Threads.html#g-mutex-locker-new
https://developer.gnome.org/glib/stable/glib-Miscellaneous-Macros.html#g-autoptr

[Version] 0.2.55
[Issue Type] Refactoring

Change-Id: If724556eec0fd61a22026f819f72e95543c7ca44

packaging/capi-media-webrtc.spec
src/webrtc_signaling_server.c

index b2167fd7e5c46664b1e2694e7413641f9da1fbab..8db218b874107f525efe7a85198e05a6a3e5ff93 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-webrtc
 Summary:    A WebRTC library in Tizen Native API
-Version:    0.2.54
+Version:    0.2.55
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 78fb83d48978b07aa09d258d2806726b04494e2b..3f28165f2921a8899ab6ee3b17f52d28dd4cbe94 100644 (file)
@@ -420,14 +420,14 @@ int webrtc_signaling_server_start(webrtc_signaling_server_h server)
        int ret = WEBRTC_ERROR_NONE;
        webrtc_signaling_server_s *_server = (webrtc_signaling_server_s *)server;
        GError *error;
+       g_autoptr(GMutexLocker) locker = NULL;
 
        RET_VAL_IF(server == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "server is NULL");
 
-       g_mutex_lock(&_server->mutex);
+       locker = g_mutex_locker_new(&_server->mutex);
 
        if (_server->thread) {
                LOG_DEBUG("thread[%p] has been already started", _server->thread);
-               g_mutex_unlock(&_server->mutex);
                return WEBRTC_ERROR_NONE;
        }
 
@@ -439,8 +439,6 @@ int webrtc_signaling_server_start(webrtc_signaling_server_h server)
 
        LOG_INFO("server[%p, thread:%p]", _server, _server->thread);
 
-       g_mutex_unlock(&_server->mutex);
-
        return ret;
 }
 
@@ -465,17 +463,16 @@ static void __stop_server(webrtc_signaling_server_s *server)
 int webrtc_signaling_server_stop(webrtc_signaling_server_h server)
 {
        webrtc_signaling_server_s *_server = (webrtc_signaling_server_s *)server;
+       g_autoptr(GMutexLocker) locker = NULL;
 
        RET_VAL_IF(server == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "server is NULL");
 
-       g_mutex_lock(&_server->mutex);
+       locker = g_mutex_locker_new(&_server->mutex);
 
-       RET_VAL_WITH_UNLOCK_IF(_server->thread == NULL, WEBRTC_ERROR_INVALID_OPERATION, &_server->mutex, "thread is NULL");
+       RET_VAL_IF(_server->thread == NULL, WEBRTC_ERROR_INVALID_OPERATION, "thread is NULL");
 
        __stop_server(_server);
 
-       g_mutex_unlock(&_server->mutex);
-
        return WEBRTC_ERROR_NONE;
 }