From c95d61ea316d08957efcca3d9c8191c097bf07de Mon Sep 17 00:00:00 2001 From: TheAssembler1 Date: Tue, 17 Jun 2025 08:27:56 -0700 Subject: [PATCH 1/3] move hash table mutex to hashtable source filse --- .../collections/include/pdc_hash_table.h | 8 ++++++- src/commons/collections/pdc_hash_table.c | 24 +++++++++++-------- src/server/include/pdc_server.h | 1 - 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/commons/collections/include/pdc_hash_table.h b/src/commons/collections/include/pdc_hash_table.h index e5c586fda..3f3688100 100644 --- a/src/commons/collections/include/pdc_hash_table.h +++ b/src/commons/collections/include/pdc_hash_table.h @@ -49,6 +49,12 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. extern "C" { #endif +#ifdef ENABLE_MULTITHREAD +#include "mercury_thread_mutex.h" + +extern hg_thread_mutex_t hash_table_new_mutex_g; +#endif + /** * A hash table structure. */ @@ -94,7 +100,7 @@ typedef struct _HashTablePair { */ struct _HashTableIterator { - HashTable * hash_table; + HashTable *hash_table; HashTableEntry *next_entry; unsigned int next_chain; }; diff --git a/src/commons/collections/pdc_hash_table.c b/src/commons/collections/pdc_hash_table.c index efdcc5e62..e8d18cae7 100644 --- a/src/commons/collections/pdc_hash_table.c +++ b/src/commons/collections/pdc_hash_table.c @@ -32,13 +32,17 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "alloc-testing.h" #endif +#ifdef ENABLE_MULTITHREAD +hg_thread_mutex_t hash_table_new_mutex_g; +#endif + struct _HashTableEntry { HashTablePair pair; HashTableEntry *next; }; struct _HashTable { - HashTableEntry ** table; + HashTableEntry **table; unsigned int table_size; HashTableHashFunc hash_func; HashTableEqualFunc equal_func; @@ -68,7 +72,7 @@ pdc_default_string_hash_func(HashTableKey value) { FUNC_ENTER(NULL); - char * str = (char *)value; + char *str = (char *)value; unsigned int hash = 5381; int c; @@ -310,9 +314,9 @@ hash_table_enlarge(HashTable *hash_table) HashTableEntry **old_table; unsigned int old_table_size; unsigned int old_prime_index; - HashTableEntry * rover; - HashTablePair * pair; - HashTableEntry * next; + HashTableEntry *rover; + HashTablePair *pair; + HashTableEntry *next; unsigned int index; unsigned int i; @@ -369,7 +373,7 @@ hash_table_insert(HashTable *hash_table, HashTableKey key, HashTableValue value) FUNC_ENTER(NULL); HashTableEntry *rover; - HashTablePair * pair; + HashTablePair *pair; HashTableEntry *newentry; unsigned int index; @@ -455,7 +459,7 @@ hash_table_lookup(HashTable *hash_table, HashTableKey key) FUNC_ENTER(NULL); HashTableEntry *rover; - HashTablePair * pair; + HashTablePair *pair; unsigned int index; /* Generate the hash of the key and hence the index into the table */ @@ -487,8 +491,8 @@ hash_table_remove(HashTable *hash_table, HashTableKey key) FUNC_ENTER(NULL); HashTableEntry **rover; - HashTableEntry * entry; - HashTablePair * pair; + HashTableEntry *entry; + HashTablePair *pair; unsigned int index; int result; @@ -579,7 +583,7 @@ hash_table_iter_next(HashTableIterator *iterator) FUNC_ENTER(NULL); HashTableEntry *current_entry; - HashTable * hash_table; + HashTable *hash_table; HashTablePair pair = {NULL, NULL}; unsigned int chain; diff --git a/src/server/include/pdc_server.h b/src/server/include/pdc_server.h index a1af90004..2cc69d18e 100644 --- a/src/server/include/pdc_server.h +++ b/src/server/include/pdc_server.h @@ -71,7 +71,6 @@ extern int use_sqlite3_g; /*****************************/ /* Library-private Variables */ /*****************************/ -hg_thread_mutex_t hash_table_new_mutex_g; hg_thread_mutex_t pdc_client_addr_mutex_g; hg_thread_mutex_t pdc_metadata_hash_table_mutex_g; hg_thread_mutex_t pdc_container_hash_table_mutex_g; From 4a61319e898712adc0a548e6950523e949b73646 Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 17 Jun 2025 15:28:36 +0000 Subject: [PATCH 2/3] Committing clang-format changes --- .../collections/include/pdc_hash_table.h | 2 +- src/commons/collections/pdc_hash_table.c | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/commons/collections/include/pdc_hash_table.h b/src/commons/collections/include/pdc_hash_table.h index 3f3688100..0780d1722 100644 --- a/src/commons/collections/include/pdc_hash_table.h +++ b/src/commons/collections/include/pdc_hash_table.h @@ -100,7 +100,7 @@ typedef struct _HashTablePair { */ struct _HashTableIterator { - HashTable *hash_table; + HashTable * hash_table; HashTableEntry *next_entry; unsigned int next_chain; }; diff --git a/src/commons/collections/pdc_hash_table.c b/src/commons/collections/pdc_hash_table.c index e8d18cae7..0332bf68b 100644 --- a/src/commons/collections/pdc_hash_table.c +++ b/src/commons/collections/pdc_hash_table.c @@ -42,7 +42,7 @@ struct _HashTableEntry { }; struct _HashTable { - HashTableEntry **table; + HashTableEntry ** table; unsigned int table_size; HashTableHashFunc hash_func; HashTableEqualFunc equal_func; @@ -72,7 +72,7 @@ pdc_default_string_hash_func(HashTableKey value) { FUNC_ENTER(NULL); - char *str = (char *)value; + char * str = (char *)value; unsigned int hash = 5381; int c; @@ -314,9 +314,9 @@ hash_table_enlarge(HashTable *hash_table) HashTableEntry **old_table; unsigned int old_table_size; unsigned int old_prime_index; - HashTableEntry *rover; - HashTablePair *pair; - HashTableEntry *next; + HashTableEntry * rover; + HashTablePair * pair; + HashTableEntry * next; unsigned int index; unsigned int i; @@ -373,7 +373,7 @@ hash_table_insert(HashTable *hash_table, HashTableKey key, HashTableValue value) FUNC_ENTER(NULL); HashTableEntry *rover; - HashTablePair *pair; + HashTablePair * pair; HashTableEntry *newentry; unsigned int index; @@ -459,7 +459,7 @@ hash_table_lookup(HashTable *hash_table, HashTableKey key) FUNC_ENTER(NULL); HashTableEntry *rover; - HashTablePair *pair; + HashTablePair * pair; unsigned int index; /* Generate the hash of the key and hence the index into the table */ @@ -491,8 +491,8 @@ hash_table_remove(HashTable *hash_table, HashTableKey key) FUNC_ENTER(NULL); HashTableEntry **rover; - HashTableEntry *entry; - HashTablePair *pair; + HashTableEntry * entry; + HashTablePair * pair; unsigned int index; int result; @@ -583,7 +583,7 @@ hash_table_iter_next(HashTableIterator *iterator) FUNC_ENTER(NULL); HashTableEntry *current_entry; - HashTable *hash_table; + HashTable * hash_table; HashTablePair pair = {NULL, NULL}; unsigned int chain; From 2f6cd63a3c1116b261cd53bb9805e41aabeb060a Mon Sep 17 00:00:00 2001 From: Jean Luca Bez Date: Fri, 18 Jul 2025 11:42:01 -0700 Subject: [PATCH 3/3] add multithread compile test --- .../workflows/ubuntu-cache-multithread.yaml | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/ubuntu-cache-multithread.yaml diff --git a/.github/workflows/ubuntu-cache-multithread.yaml b/.github/workflows/ubuntu-cache-multithread.yaml new file mode 100644 index 000000000..d2276517f --- /dev/null +++ b/.github/workflows/ubuntu-cache-multithread.yaml @@ -0,0 +1,27 @@ +name: Ubuntu (multithread) + +on: + pull_request: + branches: [ stable, develop ] + + push: + branches: [ stable, develop ] + + workflow_dispatch: + +jobs: + PDC: + runs-on: ubuntu-latest + timeout-minutes: 60 + + steps: + - uses: actions/checkout@v3 + + - name: Dependencies + run: .github/workflows/dependencies-linux.sh + + - name: Build PDC + run: | + mkdir build && cd build + cmake ../ -DBUILD_MPI_TESTING=ON -DBUILD_SHARED_LIBS=ON -DPDC_SERVER_CACHE=ON -DBUILD_TESTING=ON -DPDC_ENABLE_MPI=ON -DPDC_ENABLE_PROFILING=ON -DPDC_ENABLE_MULTITHREAD=ON -DCMAKE_C_COMPILER=mpicc -DCMAKE_POLICY_VERSION_MINIMUM=3.5 + make -j2