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 diff --git a/src/commons/collections/include/pdc_hash_table.h b/src/commons/collections/include/pdc_hash_table.h index e5c586fda..0780d1722 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. */ diff --git a/src/commons/collections/pdc_hash_table.c b/src/commons/collections/pdc_hash_table.c index efdcc5e62..0332bf68b 100644 --- a/src/commons/collections/pdc_hash_table.c +++ b/src/commons/collections/pdc_hash_table.c @@ -32,6 +32,10 @@ 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; 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;