return res;
}
+void msc_remove_folder_extract_request(ms_comm_msg_s *recv_msg)
+{
+ int i = 0;
+ char *cancel_path = recv_msg->msg;
+ int pid = recv_msg->pid;
+ GAsyncQueue *temp_extract_queue = NULL;
+ ms_comm_msg_s *msg = NULL;
+ int len = g_async_queue_length(folder_extract_queue);
+
+ MS_DBG_WARN("folder_extract_queue len [%d]", len);
+
+ if (len == 0) {
+ MS_DBG_ERR("Request is not stacked");
+ return;
+ }
+
+ temp_extract_queue = g_async_queue_new();
+
+ MS_DBG_WARN("start update folder_extract_queue");
+
+ for (i = 0; i < len; i++) {
+ msg = g_async_queue_pop(folder_extract_queue);
+ if ((strcmp(msg->msg, cancel_path) == 0) && (pid == msg->pid)) {
+ MS_DBG_WARN("Remove request. cancel path [%s]", cancel_path);
+ if (msg->result) {
+ msg->msg_type = MS_MSG_DIRECTORY_SCANNING_CANCEL;
+ msc_send_result(MS_MEDIA_ERR_SCANNER_FORCE_STOP, msg);
+ }
+ g_free(msg);
+ } else {
+ g_async_queue_push(temp_extract_queue, msg);
+ }
+ }
+
+ g_async_queue_unref(folder_extract_queue);
+ folder_extract_queue = temp_extract_queue;
+
+ MS_DBG_FLEAVE();
+}
extern GAsyncQueue *scan_queue2;
extern GMutex scan_req_mutex2;
-extern GAsyncQueue *folder_extract_queue;
extern int g_directory_scan_processing2;
static void __msc_remove_request(ms_comm_msg_s *recv_msg)
END_REMOVE_REQUEST:
{
msc_set_cancel_extract_item(recv_msg->msg, recv_msg->pid);
- GAsyncQueue *temp_extract_queue = NULL;
- int len_extract = g_async_queue_length(folder_extract_queue);
- MS_DBG_WARN("len [%d]", len_extract);
-
- if (len_extract > 0) {
- temp_extract_queue = g_async_queue_new();
- MS_DBG_WARN("start update folder_extract_queue");
- for (i = 0; i < len_extract; i++) {
- /*create new queue to compare request*/
- msg = g_async_queue_pop(folder_extract_queue);
- if ((strcmp(msg->msg, cancel_path) == 0) && (pid == msg->pid)) {
- MS_DBG_WARN("cancel path [%s]", cancel_path);
- if (msg->result) {
- msg->msg_type = MS_MSG_DIRECTORY_SCANNING_CANCEL;
- msc_send_result(MS_MEDIA_ERR_SCANNER_FORCE_STOP, msg);
- }
- g_free(msg);
- } else {
- g_async_queue_push(temp_extract_queue, msg);
- }
- }
-
- len = g_async_queue_length(temp_extract_queue);
- int j = 0;
- for (; j < len; j++) {
- msg = g_async_queue_pop(temp_extract_queue);
- if (msg)
- g_async_queue_push(folder_extract_queue, msg);
- }
- g_async_queue_unref(temp_extract_queue);
- MS_DBG_WARN("end update folder_extract_queue");
- }
+ msc_remove_folder_extract_request(recv_msg);
}
g_mutex_unlock(&scan_req_mutex2);