mirror of
https://github.com/simon987/sist2.git
synced 2025-04-16 00:46:43 +00:00
Add thread lock for incremental_mark_file_for_copy()
This commit is contained in:
parent
81008d8936
commit
ee9a8fa514
@ -41,6 +41,7 @@ typedef struct {
|
||||
|
||||
GHashTable *original_table;
|
||||
GHashTable *copy_table;
|
||||
pthread_mutex_t copy_table_mu;
|
||||
|
||||
pcre *exclude;
|
||||
pcre_extra *exclude_extra;
|
||||
|
@ -170,6 +170,7 @@ void initialize_scan_context(scan_args_t *args) {
|
||||
ScanCtx.dbg_current_files = g_hash_table_new_full(g_int64_hash, g_int64_equal, NULL, NULL);
|
||||
pthread_mutex_init(&ScanCtx.dbg_current_files_mu, NULL);
|
||||
pthread_mutex_init(&ScanCtx.dbg_file_counts_mu, NULL);
|
||||
pthread_mutex_init(&ScanCtx.copy_table_mu, NULL);
|
||||
|
||||
ScanCtx.calculate_checksums = args->calculate_checksums;
|
||||
|
||||
|
@ -79,7 +79,9 @@ void parse(void *arg) {
|
||||
|
||||
int inc_ts = incremental_get(ScanCtx.original_table, doc->path_md5);
|
||||
if (inc_ts != 0 && inc_ts == job->vfile.info.st_mtim.tv_sec) {
|
||||
pthread_mutex_lock(&ScanCtx.copy_table_mu);
|
||||
incremental_mark_file_for_copy(ScanCtx.copy_table, doc->path_md5);
|
||||
pthread_mutex_unlock(&ScanCtx.copy_table_mu);
|
||||
|
||||
pthread_mutex_lock(&ScanCtx.dbg_file_counts_mu);
|
||||
ScanCtx.dbg_skipped_files_count += 1;
|
||||
|
@ -133,6 +133,9 @@ static int incremental_get_str(GHashTable *table, const char *path_md5) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Not thread safe!
|
||||
*/
|
||||
__always_inline
|
||||
static int incremental_mark_file_for_copy(GHashTable *table, const unsigned char path_md5[MD5_DIGEST_LENGTH]) {
|
||||
char *ptr = malloc(MD5_STR_LENGTH);
|
||||
|
Loading…
x
Reference in New Issue
Block a user