{
espp_s *_espp = (espp_s *)espp;
g_autoptr(GMutexLocker) locker = NULL;
+ g_autoptr(GMutexLocker) cb_locker = NULL;
RET_VAL_IF(!espp, ESPP_CLIENT_ERROR_INVALID_PARAMETER, "espp is NULL");
RET_VAL_IF(!callback, ESPP_CLIENT_ERROR_INVALID_PARAMETER, "callback is NULL");
if (espp_service_client_socket_request_set_callback(_espp, ESPP_SERVICE_EVENT_CB_READY_TO_PREPARE, (void *)callback, user_data) != 0)
return ESPP_CLIENT_ERROR_INVALID_OPERATION;
+ cb_locker = g_mutex_locker_new(&_espp->cb_mutex);
LOG_WARNING_IF_CALLBACK_EXISTS(_espp->ready_to_prepare_cb);
_espp->ready_to_prepare_cb.callback = callback;
{
espp_s *_espp = (espp_s *)espp;
g_autoptr(GMutexLocker) locker = NULL;
+ g_autoptr(GMutexLocker) cb_locker = NULL;
RET_VAL_IF(!espp, ESPP_CLIENT_ERROR_INVALID_PARAMETER, "espp is NULL");
RET_VAL_IF(!callback, ESPP_CLIENT_ERROR_INVALID_PARAMETER, "callback is NULL");
if (espp_service_client_socket_request_set_callback(_espp, ESPP_SERVICE_EVENT_CB_PREPARE_ASYNC_DONE, (void *)callback, user_data) != 0)
return ESPP_CLIENT_ERROR_INVALID_OPERATION;
+ cb_locker = g_mutex_locker_new(&_espp->cb_mutex);
LOG_WARNING_IF_CALLBACK_EXISTS(_espp->prepare_async_done_cb);
_espp->prepare_async_done_cb.callback = callback;
{
espp_s *_espp = (espp_s *)espp;
g_autoptr(GMutexLocker) locker = NULL;
+ g_autoptr(GMutexLocker) cb_locker = NULL;
RET_VAL_IF(!espp, ESPP_CLIENT_ERROR_INVALID_PARAMETER, "espp is NULL");
RET_VAL_IF(!callback, ESPP_CLIENT_ERROR_INVALID_PARAMETER, "callback is NULL");
if (espp_service_client_socket_request_set_callback(_espp, ESPP_SERVICE_EVENT_CB_SEEK_DONE, (void *)callback, user_data) != 0)
return ESPP_CLIENT_ERROR_INVALID_OPERATION;
+ cb_locker = g_mutex_locker_new(&_espp->cb_mutex);
LOG_WARNING_IF_CALLBACK_EXISTS(_espp->seek_done_cb);
_espp->seek_done_cb.callback = callback;
{
espp_s *_espp = (espp_s *)espp;
g_autoptr(GMutexLocker) locker = NULL;
+ g_autoptr(GMutexLocker) cb_locker = NULL;
RET_VAL_IF(!espp, ESPP_CLIENT_ERROR_INVALID_PARAMETER, "espp is NULL");
RET_VAL_IF(!callback, ESPP_CLIENT_ERROR_INVALID_PARAMETER, "callback is NULL");
if (espp_service_client_socket_request_set_callback(_espp, ESPP_SERVICE_EVENT_CB_EOS, (void *)callback, user_data) != 0)
return ESPP_CLIENT_ERROR_INVALID_OPERATION;
+ cb_locker = g_mutex_locker_new(&_espp->cb_mutex);
LOG_WARNING_IF_CALLBACK_EXISTS(_espp->eos_cb);
_espp->eos_cb.callback = callback;
{
espp_s *_espp = (espp_s *)espp;
g_autoptr(GMutexLocker) locker = NULL;
+ g_autoptr(GMutexLocker) cb_locker = NULL;
RET_VAL_IF(!espp, ESPP_CLIENT_ERROR_INVALID_PARAMETER, "espp is NULL");
RET_VAL_IF(!callback, ESPP_CLIENT_ERROR_INVALID_PARAMETER, "callback is NULL");
if (espp_service_client_socket_request_set_callback(_espp, ESPP_SERVICE_EVENT_CB_BUFFER_STATUS, (void *)callback, user_data) != 0)
return ESPP_CLIENT_ERROR_INVALID_OPERATION;
+ cb_locker = g_mutex_locker_new(&_espp->cb_mutex);
LOG_WARNING_IF_CALLBACK_EXISTS(_espp->buffer_status_cb);
_espp->buffer_status_cb.callback = callback;
{
espp_s *_espp = (espp_s *)espp;
g_autoptr(GMutexLocker) locker = NULL;
+ g_autoptr(GMutexLocker) cb_locker = NULL;
RET_VAL_IF(!espp, ESPP_CLIENT_ERROR_INVALID_PARAMETER, "espp is NULL");
RET_VAL_IF(!callback, ESPP_CLIENT_ERROR_INVALID_PARAMETER, "callback is NULL");
if (espp_service_client_socket_request_set_callback(_espp, ESPP_SERVICE_EVENT_CB_RESOURCE_CONFLICTED, (void *)callback, user_data) != 0)
return ESPP_CLIENT_ERROR_INVALID_OPERATION;
+ cb_locker = g_mutex_locker_new(&_espp->cb_mutex);
LOG_WARNING_IF_CALLBACK_EXISTS(_espp->resource_conflicted_cb);
_espp->resource_conflicted_cb.callback = callback;
_espp->event_fd = -1;
g_mutex_init(&_espp->mutex);
+ g_mutex_init(&_espp->cb_mutex);
if (espp_service_client_socket_request_create(_espp) != 0) {
g_free(_espp);
g_mutex_unlock(&_espp->mutex);
g_mutex_clear(&_espp->mutex);
+ g_mutex_clear(&_espp->cb_mutex);
LOG_INFO("espp[%p] is destroyed", espp);