int media_svc_check_item_exist_by_path(sqlite3 *handle, const char *storage_id, const char *path);
int media_svc_get_modified_time(sqlite3 *handle, const char *storage_id, const char *path, int *modified_time);
int media_svc_insert_folder(sqlite3 *handle, const char *storage_id, ms_user_storage_type_e storage_type, const char *path, uid_t uid);
-int media_svc_insert_item_begin(int data_cnt, bool with_noti, int from_pid);
+int media_svc_insert_item_begin(bool with_noti, int from_pid);
int media_svc_insert_item_end(uid_t uid);
int media_svc_insert_item_bulk(sqlite3 *handle, const char *storage_id, ms_user_storage_type_e storage_type, const char *path, uid_t uid);
int media_svc_insert_item_immediately(sqlite3 *handle, const char *storage_id, ms_user_storage_type_e storage_type, const char *path, uid_t uid);
#include "media-svc-noti.h"
#include "media-svc-storage.h"
-static __thread int g_media_svc_data_cnt = 0;
+//static __thread int g_media_svc_data_cnt = 0;
static __thread int g_media_svc_cur_data_cnt = 0;
/* Flag for items to be published by notification */
static __thread bool g_insert_with_noti = false;
-#define BATCH_REQUEST_MAX 300
+#define BATCH_ITEM_COUNT_MAX 30
int media_svc_get_user_version(sqlite3 *handle, int *user_version)
{
return _media_svc_get_modified_time(handle, path, modified_time);
}
-int media_svc_insert_item_begin(int data_cnt, bool with_noti, int from_pid)
+int media_svc_insert_item_begin(bool with_noti, int from_pid)
{
- media_svc_retvm_if(data_cnt < 1, MS_MEDIA_ERR_INVALID_PARAMETER, "data_cnt shuld be bigger than 1");
-
- g_media_svc_data_cnt = data_cnt;
g_media_svc_cur_data_cnt = 0;
/* Prepare for making noti item list */
}
}
- g_media_svc_data_cnt = 0;
g_media_svc_cur_data_cnt = 0;
return ret;
if (g_insert_with_noti)
_media_svc_insert_item_to_noti_list(&content_info);
- if (++g_media_svc_cur_data_cnt == g_media_svc_data_cnt) {
+ /* To avoid over-occupying memory, update per BATCH_ITEM_COUNT_MAX. */
+ if (++g_media_svc_cur_data_cnt == BATCH_ITEM_COUNT_MAX) {
ret = _media_svc_list_query_do(MEDIA_SVC_QUERY_SCANNER, uid);
media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, &content_info);
ret = _media_svc_update_item_validity(path, validity, true, uid);
media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
- if (++g_media_svc_cur_data_cnt == g_media_svc_data_cnt) {
+ /* To avoid over-occupying memory, update per BATCH_ITEM_COUNT_MAX. */
+ if (++g_media_svc_cur_data_cnt == BATCH_ITEM_COUNT_MAX) {
ret = _media_svc_list_query_do(MEDIA_SVC_QUERY_SCANNER, uid);
media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);