#include "message-port.h"
#include "message-port-log.h"
+#include "message_port_internal.h"
#define MAX_PACKAGE_STR_SIZE 512
#define MESSAGEPORT_BUS_NAME_PREFIX "org.tizen.messageport._"
bundle_raw *data;
} delay_message_info_s;
-
-extern pthread_mutex_t mutex;
static void __free_list_delay_message_info(gpointer data);
if (port_info == NULL)
return G_SOURCE_REMOVE;
- pthread_mutex_lock(&mutex);
+ message_port_lock_mutex();
if (port_info->delayed_message_list == NULL) {
port_info->delayed_message_size = 0;
port_info->delay_src_id = 0;
- pthread_mutex_unlock(&mutex);
+ message_port_unlock_mutex();
return G_SOURCE_REMOVE;
} else {
message = g_list_nth_data(port_info->delayed_message_list, 0);
ret = __send_delayed_message(port_info->send_sock_fd, message);
if (ret == MESSAGEPORT_ERROR_RESOURCE_UNAVAILABLE) {
- pthread_mutex_unlock(&mutex);
+ message_port_unlock_mutex();
return G_SOURCE_CONTINUE;
} else if (ret == MESSAGEPORT_ERROR_IO_ERROR) {
__clear_disconnect_socket(port_info);
- pthread_mutex_unlock(&mutex);
+ message_port_unlock_mutex();
return G_SOURCE_REMOVE;
}
__free_delay_message_info(message);
}
- pthread_mutex_unlock(&mutex);
+ message_port_unlock_mutex();
return G_SOURCE_CONTINUE;
}
#include <glib.h>
#include <stdlib.h>
#include <stdbool.h>
-#include <pthread.h>
#include <message-port.h>
#include "message_port_internal.h"
#include "message_port_log.h"
static GHashTable *__listeners;
static GHashTable *__trusted_listeners;
-pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static void do_callback(message_port_message_cb callback, int local_port_id, const char *remote_app_id, const char *remote_port, bool trusted_remote_port, bundle *message, void *user_data)
{
if (__listeners == NULL)
__listeners = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_free);
- pthread_mutex_lock(&mutex);
+ message_port_lock_mutex();
message_port_callback_item *item =
(message_port_callback_item *)g_hash_table_lookup(__listeners, GINT_TO_POINTER(local_port_id));
if (item == NULL) {
item = (message_port_callback_item *)calloc(1, sizeof(message_port_callback_item));
if (item == NULL) {
- pthread_mutex_unlock(&mutex);
+ message_port_unlock_mutex();
return MESSAGE_PORT_ERROR_OUT_OF_MEMORY;
}
item->callback = callback;
item->user_data = user_data;
- pthread_mutex_unlock(&mutex);
+ message_port_unlock_mutex();
} else {
_SECURE_LOGI("Register local port fail (%d).", local_port_id);
if (__trusted_listeners == NULL)
__trusted_listeners = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_free);
- pthread_mutex_lock(&mutex);
+ message_port_lock_mutex();
message_port_callback_item *item =
(message_port_callback_item *)g_hash_table_lookup(__trusted_listeners, GINT_TO_POINTER(trusted_local_port_id));
if (item == NULL) {
item = (message_port_callback_item *)calloc(1, sizeof(message_port_callback_item));
if (item == NULL) {
- pthread_mutex_unlock(&mutex);
+ message_port_unlock_mutex();
return MESSAGE_PORT_ERROR_OUT_OF_MEMORY;
}
item->callback = callback;
item->user_data = user_data;
- pthread_mutex_unlock(&mutex);
+ message_port_unlock_mutex();
} else {
_SECURE_LOGI("Register trusted local port fail (%d).", trusted_local_port_id);
}
}
_SECURE_LOGI("Send a message to (%s):(%s).", remote_app_id, remote_port);
- pthread_mutex_lock(&mutex);
+ message_port_lock_mutex();
ret = messageport_send_message(remote_app_id, remote_port, message);
- pthread_mutex_unlock(&mutex);
+ message_port_unlock_mutex();
return convert_to_tizen_error((messageport_error_e)ret);
}
}
_SECURE_LOGI("Send a trusted message to (%s):(%s).", remote_app_id, remote_port);
- pthread_mutex_lock(&mutex);
+ message_port_lock_mutex();
ret = messageport_send_trusted_message(remote_app_id, remote_port, message);
- pthread_mutex_unlock(&mutex);
+ message_port_unlock_mutex();
return convert_to_tizen_error((messageport_error_e)ret);
}
}
_SECURE_LOGI("Send a message to (%s):(%s) and listen at the local port ID (%d).", remote_app_id, remote_port, local_port_id);
- pthread_mutex_lock(&mutex);
+ message_port_lock_mutex();
ret = messageport_send_bidirectional_message(local_port_id, remote_app_id, remote_port, message);
- pthread_mutex_unlock(&mutex);
+ message_port_unlock_mutex();
return convert_to_tizen_error((messageport_error_e)ret);
}
}
_SECURE_LOGI("Send a trusted message to (%s):(%s) and listen at the local port ID (%d).", remote_app_id, remote_port, local_port_id);
- pthread_mutex_lock(&mutex);
+ message_port_lock_mutex();
ret = messageport_send_bidirectional_trusted_message(local_port_id, remote_app_id, remote_port, message);
- pthread_mutex_unlock(&mutex);
+ message_port_unlock_mutex();
return convert_to_tizen_error((messageport_error_e)ret);
}