summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/H5FDioc.c51
-rw-r--r--src/H5FDioc_threads.c537
-rw-r--r--src/H5FDsubfile_int.c41
-rw-r--r--src/H5FDsubfile_mpi.c659
-rw-r--r--src/H5FDsubfiling.c193
-rw-r--r--src/H5FDsubfiling.h17
-rw-r--r--src/H5FDsubfiling_priv.h384
-rw-r--r--src/mercury/src/util/.deps/.dirstamp0
-rw-r--r--src/mercury/src/util/.deps/mercury_atomic_queue.Plo357
-rw-r--r--src/mercury/src/util/.deps/mercury_dlog.Plo214
-rw-r--r--src/mercury/src/util/.deps/mercury_event.Plo219
-rw-r--r--src/mercury/src/util/.deps/mercury_hash_table.Plo125
-rw-r--r--src/mercury/src/util/.deps/mercury_log.Plo204
-rw-r--r--src/mercury/src/util/.deps/mercury_mem.Plo276
-rw-r--r--src/mercury/src/util/.deps/mercury_mem_pool.Plo228
-rw-r--r--src/mercury/src/util/.deps/mercury_poll.Plo262
-rw-r--r--src/mercury/src/util/.deps/mercury_request.Plo220
-rw-r--r--src/mercury/src/util/.deps/mercury_thread.Plo113
-rw-r--r--src/mercury/src/util/.deps/mercury_thread_condition.Plo153
-rw-r--r--src/mercury/src/util/.deps/mercury_thread_mutex.Plo183
-rw-r--r--src/mercury/src/util/.deps/mercury_thread_pool.Plo220
-rw-r--r--src/mercury/src/util/.deps/mercury_thread_rwlock.Plo186
-rw-r--r--src/mercury/src/util/.deps/mercury_thread_spin.Plo186
-rw-r--r--src/mercury/src/util/.deps/mercury_util.Plo214
-rw-r--r--src/mercury/src/util/.dirstamp0
25 files changed, 1839 insertions, 3403 deletions
diff --git a/src/H5FDioc.c b/src/H5FDioc.c
index b00fb51..273ca0f 100644
--- a/src/H5FDioc.c
+++ b/src/H5FDioc.c
@@ -30,11 +30,21 @@
#include "H5Pprivate.h" /* Property lists */
#include "H5private.h" /* Generic Functions */
+#if 1 /* JRM */ /* For now, H5FDsubfiling_priv.h needs mercury. Since the code that needs it will \
+ * move to its own header, just hack it for now. \
+ */
+#include "mercury_thread.h"
+#include "mercury_thread_mutex.h"
+#include "mercury_thread_pool.h"
+#endif /* JRM */
+
#include "H5FDsubfiling_priv.h"
/* The driver identification number, initialized at runtime */
-static hid_t H5FD_IOC_g = 0;
+static hid_t H5FD_IOC_g = 0;
+#if 0 /* JRM */ /* delete if all goes well */
extern volatile int sf_shutdown_flag;
+#endif /* JRM */
/*
* These macros check for overflow of various quantities. These macros
@@ -227,6 +237,7 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5FD_ioc_init() */
+#if 0 /* JRM */ /* delete if all goes well */
/*-------------------------------------------------------------------------
* Function: H5FD_ioc_set_shutdown_flag
*
@@ -246,6 +257,7 @@ H5FD_ioc_set_shutdown_flag(int flag)
usleep(100);
return;
} /* end H5FD_ioc_set_shutdown_flag() */
+#endif /* JRM */
/*---------------------------------------------------------------------------
* Function: H5FD__ioc_term
@@ -854,30 +866,30 @@ H5FD__ioc_open(const char *name, unsigned flags, hid_t ioc_fapl_id, haddr_t maxa
else if (file_ptr->inode > 0) { /* No errors opening the subfiles */
subfiling_context_t *sf_context = get__subfiling_object(file_ptr->fa.common.context_id);
- if (sf_context && sf_context->topology->rank_is_ioc) {
- if (initialize_ioc_threads(sf_context) < 0) {
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "Unable to initialize IOC threads")
+ if (sf_context && sf_context->topology->rank_is_ioc) {
+ if (initialize_ioc_threads(sf_context) < 0) {
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "Unable to initialize IOC threads")
+ }
}
}
}
-}
-else
-{
- HDputs("We only support sec2 file opens at the moment.");
- HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "unable to open file = %s\n", name)
-}
+ else {
+ HDputs("We only support sec2 file opens at the moment.");
+ HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "unable to open file = %s\n", name)
+ }
-ret_value = (H5FD_t *)file_ptr;
+ ret_value = (H5FD_t *)file_ptr;
-done : if (NULL == ret_value) {
- if (file_ptr) {
- if (file_ptr->ioc_file)
- H5FD_close(file_ptr->ioc_file);
- H5FL_FREE(H5FD_ioc_t, file_ptr);
- }
-} /* end if error */
+done:
+ if (NULL == ret_value) {
+ if (file_ptr) {
+ if (file_ptr->ioc_file)
+ H5FD_close(file_ptr->ioc_file);
+ H5FL_FREE(H5FD_ioc_t, file_ptr);
+ }
+ } /* end if error */
-FUNC_LEAVE_NOAPI(ret_value)
+ FUNC_LEAVE_NOAPI(ret_value)
} /* end H5FD__ioc_open() */
/*-------------------------------------------------------------------------
@@ -1430,5 +1442,6 @@ H5FD_ioc_wait_thread_main(void)
void
H5FD_ioc_finalize_threads(void)
{
+
return;
}
diff --git a/src/H5FDioc_threads.c b/src/H5FDioc_threads.c
index 3a7ee84..0c3d23c 100644
--- a/src/H5FDioc_threads.c
+++ b/src/H5FDioc_threads.c
@@ -46,6 +46,12 @@ void __attribute__((destructor)) finalize_ioc_threads(void);
int wait_for_thread_main(void);
bool tpool_is_empty(void);
+#if 1 /* JRM */
+
+extern H5FD_ioc_io_queue_t io_queue_g;
+
+#endif /* JRM */
+
/*-------------------------------------------------------------------------
* Function: local ioc_thread_main
*
@@ -110,6 +116,15 @@ initialize_ioc_threads(void *_sf_context)
char * envValue;
double t_start = 0.0, t_end = 0.0;
+#if 0 /* JRM */ /* delete this evenutually */
+ HDprintf("\nworld_size = %d\n", world_size);
+#endif /* JRM */
+
+#if 1 /* JRM */ /* try doubling the size of the pool_request array */
+ world_size *= 4;
+ alloc_size *= 4;
+#endif /* JRM */
+
assert(context_id != NULL);
file_open_count = atomic_load(&sf_file_open_count);
@@ -154,6 +169,16 @@ initialize_ioc_threads(void *_sf_context)
goto err_exit;
}
+#if 1 /* JRM */ /* needed for new dispatch code */
+
+ status = hg_thread_mutex_init(&(io_queue_g.q_mutex));
+ if (status) {
+ puts("hg_thread_mutex_init failed for io_queue_g.q_mutex");
+ goto err_exit;
+ }
+
+#endif /* JRM */
+
/* Allow experimentation with the number of helper threads */
if ((envValue = getenv("IOC_THREAD_POOL_COUNT")) != NULL) {
int value_check = atoi(envValue);
@@ -267,9 +292,13 @@ translate_opcode(io_op_t op)
*
*-------------------------------------------------------------------------
*/
+#if 0 /* JRM */ /* Original version -- expects sf_work_request_t * as its arguement */
static HG_THREAD_RETURN_TYPE
handle_work_request(void *arg)
{
+#if 1 /* JRM */
+ int curr_io_ops_pending;
+#endif /* JRM */
int status = 0;
hg_thread_ret_t ret = 0;
sf_work_request_t * msg = (sf_work_request_t *)arg;
@@ -298,6 +327,11 @@ handle_work_request(void *arg)
}
fflush(stdout);
+#if 1 /* JRM */
+ curr_io_ops_pending = atomic_fetch_sub(&sf_io_ops_pending, 1);
+ HDassert(curr_io_ops_pending > 0);
+#endif /* JRM */
+
atomic_fetch_sub(&sf_work_pending, 1); // atomic
msg->in_progress = 0;
if (msg->dependents) {
@@ -315,6 +349,80 @@ handle_work_request(void *arg)
return ret;
}
+#else /* JRM */ /* Modified version -- expects H5FD_ioc_io_queue_entry_t * as its argument */
+
+static HG_THREAD_RETURN_TYPE
+handle_work_request(void *arg)
+{
+#if 1 /* JRM */
+ int curr_io_ops_pending;
+#endif /* JRM */
+ int status = 0;
+ hg_thread_ret_t ret = 0;
+ H5FD_ioc_io_queue_entry_t *q_entry_ptr = (H5FD_ioc_io_queue_entry_t *)arg;
+ sf_work_request_t * msg = &(q_entry_ptr->wk_req);
+ int64_t file_context_id = msg->header[2];
+ subfiling_context_t * sf_context = NULL;
+
+ HDassert(q_entry_ptr);
+ HDassert(q_entry_ptr->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC);
+ HDassert(q_entry_ptr->in_progress);
+
+ sf_context = get__subfiling_object(file_context_id);
+ assert(sf_context != NULL);
+
+ atomic_fetch_add(&sf_work_pending, 1); // atomic
+ msg->in_progress = 1;
+ switch (msg->tag) {
+ case WRITE_INDEP:
+ status = queue_write_indep(msg, msg->subfile_rank, msg->source, sf_context->sf_data_comm,
+ q_entry_ptr->counter);
+ break;
+ case READ_INDEP:
+ status = queue_read_indep(msg, msg->subfile_rank, msg->source, sf_context->sf_data_comm);
+ break;
+ default:
+ HDprintf("[ioc(%d)] received message tag(%x)from rank %d\n", msg->subfile_rank, msg->tag,
+ msg->source);
+ status = -1;
+ break;
+ }
+ fflush(stdout);
+
+ atomic_fetch_sub(&sf_work_pending, 1); // atomic
+
+ if (status < 0) {
+ HDprintf("[ioc(%d) %s]: request(%s) filename=%s from "
+ "rank(%d), size=%ld, offset=%ld FAILED\n",
+ msg->subfile_rank, __func__, translate_opcode((io_op_t)msg->tag), sf_context->sf_filename,
+ msg->source, msg->header[0], msg->header[1]);
+
+ fflush(stdout);
+ }
+
+#if 1 /* JRM */
+ curr_io_ops_pending = atomic_fetch_sub(&sf_io_ops_pending, 1);
+ if (curr_io_ops_pending <= 0) {
+
+ HDprintf("\n\nhandle_work_request: curr_io_ops_pending = %d, op = %d, offset/len = %lld/%lld.\n\n",
+ curr_io_ops_pending, (msg->tag), (long long)(msg->header[1]), (long long)(msg->header[0]));
+ HDfflush(stdout);
+ }
+
+ HDassert(curr_io_ops_pending > 0);
+#endif /* JRM */
+
+ /* complete the I/O request */
+ H5FD_ioc__complete_io_q_entry(q_entry_ptr);
+
+ /* Check the I/O Queue to see if there are any dispatchable entries */
+ H5FD_ioc__dispatch_elegible_io_q_entries();
+
+ return ret;
+}
+
+#endif /* JRM */ /* Modified version -- expects H5FD_ioc_io_queue_entry_t * as its argument */
+
void
ioc__wait_for_serialize(void *_work)
{
@@ -425,6 +533,9 @@ check__overlap(void *_work, int current_index, int *conflict_id)
int
tpool_add_work(void *_work)
{
+#if 1 /* JRM */
+ int curr_io_ops_pending;
+#endif /* JRM */
static int work_index = 0;
int conflict_id = -1;
sf_work_request_t *work = (sf_work_request_t *)_work;
@@ -448,6 +559,17 @@ tpool_add_work(void *_work)
pool_request[work_index].func = handle_work_request;
pool_request[work_index].args = work;
+#if 1 /* JRM */
+ curr_io_ops_pending = atomic_fetch_add(&sf_io_ops_pending, 1);
+
+ HDassert(curr_io_ops_pending >= 0);
+
+ if (curr_io_ops_pending >= pool_concurrent_max) {
+
+ HDfprintf(stderr, "\n\n*** curr_io_ops_pending = %d >= pool_concurrent_max = %d ***\n\n",
+ curr_io_ops_pending, pool_concurrent_max);
+ }
+#endif /* JRM */
hg_thread_pool_post(ioc_thread_pool, &pool_request[work_index++]);
hg_thread_mutex_unlock(&ioc_mutex);
return 0;
@@ -538,3 +660,418 @@ wait_for_thread_main(void)
}
return 0;
}
+
+/*-------------------------------------------------------------------------
+ * Function: H5FD_ioc_take_down_thread_pool
+ *
+ * Purpose: Destroy the thread pool if it exists.
+ *
+ * This function should only be called on shutdown after all
+ * pending I/O operations have completed.
+ *
+ * Return: void
+ *
+ * Programmer: JRM -- 10/27/21
+ *
+ * Changes: None.
+ *
+ *-------------------------------------------------------------------------
+ */
+void
+H5FD_ioc_take_down_thread_pool(void)
+{
+ HDassert(0 == atomic_load(&sf_io_ops_pending));
+
+ if (ioc_thread_pool != NULL) {
+ hg_thread_pool_destroy(ioc_thread_pool);
+ ioc_thread_pool = NULL;
+ }
+
+ return;
+
+} /* H5FD_ioc_take_down_thread_pool() */
+
+#if 1 /* JRM */ /* dispatch code -- move elsewhere? */
+
+/*-------------------------------------------------------------------------
+ * Function: H5FD_ioc__alloc_io_q_entry
+ *
+ * Purpose: Allocate and initialize an instance of
+ * H5FD_ioc_io_queue_entry_t. Return pointer to the new
+ * instance on success, and NULL on failure.
+ *
+ * Return: Pointer to new instance of H5FD_ioc_io_queue_entry_t
+ * on success, and NULL on failure.
+ *
+ * Programmer: JRM -- 11/6/21
+ *
+ * Changes: None.
+ *
+ *-------------------------------------------------------------------------
+ */
+/* TODO: update function when we decide how to handle error reporting in the IOCs */
+H5FD_ioc_io_queue_entry_t *
+H5FD_ioc__alloc_io_q_entry(void)
+{
+ H5FD_ioc_io_queue_entry_t *q_entry_ptr = NULL;
+
+ q_entry_ptr = (H5FD_ioc_io_queue_entry_t *)HDmalloc(sizeof(H5FD_ioc_io_queue_entry_t));
+
+ if (q_entry_ptr) {
+
+ q_entry_ptr->magic = H5FD_IOC__IO_Q_ENTRY_MAGIC;
+ q_entry_ptr->next = NULL;
+ q_entry_ptr->prev = NULL;
+ q_entry_ptr->in_progress = FALSE;
+ q_entry_ptr->counter = 0;
+
+ /* will memcpy the wk_req field, so don't bother to initialize */
+ /* will initialize thread_wk field before use */
+
+#if H5FD_IOC__COLLECT_STATS
+ q_entry_ptr->q_time = 0;
+ q_entry_ptr->dispatch_time = 0;
+#endif /* H5FD_IOC__COLLECT_STATS */
+ }
+
+ return (q_entry_ptr);
+
+} /* H5FD_ioc__alloc_io_q_entry() */
+
+/*-------------------------------------------------------------------------
+ * Function: H5FD_ioc__complete_io_q_entry
+ *
+ * Purpose: Update the IOC I/O Queue for the completion of an I/O
+ * request.
+ *
+ * To do this:
+ *
+ * 1) Remove the entry from the I/O Queue
+ *
+ * 2) If so configured, update statistics
+ *
+ * 3) Discard the instance of H5FD_ioc_io_queue_entry_t.
+ *
+ * Return: void.
+ *
+ * Programmer: JRM -- 11/7/21
+ *
+ * Changes: None.
+ *
+ *-------------------------------------------------------------------------
+ */
+/* TODO: update function when we decide how to handle error reporting in the IOCs */
+/* TODO: Update for per file I/O Queue */
+void
+H5FD_ioc__complete_io_q_entry(H5FD_ioc_io_queue_entry_t *entry_ptr)
+{
+#if 0 /* H5FD_IOC__COLLECT_STATS */
+ uint64_t queued_time;
+ uint64_t execution_time;
+#endif /* H5FD_IOC__COLLECT_STATS */
+
+ HDassert(entry_ptr);
+ HDassert(entry_ptr->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC);
+
+ /* must obtain io_queue_g mutex before deleting and updating stats */
+ hg_thread_mutex_lock(&(io_queue_g.q_mutex));
+
+ HDassert(io_queue_g.magic == H5FD_IOC__IO_Q_MAGIC);
+ HDassert(io_queue_g.num_pending + io_queue_g.num_in_progress == io_queue_g.q_len);
+ HDassert(io_queue_g.num_in_progress > 0);
+
+ H5FD_IOC__Q_REMOVE(&io_queue_g, entry_ptr);
+
+ io_queue_g.num_in_progress--;
+
+ HDassert(io_queue_g.num_pending + io_queue_g.num_in_progress == io_queue_g.q_len);
+
+#if H5FD_IOC__COLLECT_STATS
+#if 0 /* no place to collect this yet */
+ /* Compute the queued and execution time */
+ queued_time = entry_ptr->dispatch_time - entry_ptr->q_time;
+ execution_time = H5_now_usec() = entry_ptr->dispatch_time;
+#endif
+
+ io_queue_g.requests_completed++;
+
+ entry_ptr->q_time = H5_now_usec();
+
+#endif /* H5FD_IOC__COLLECT_STATS */
+
+ hg_thread_mutex_unlock(&(io_queue_g.q_mutex));
+
+ HDassert(entry_ptr->wk_req.buffer == NULL);
+
+ H5FD_ioc__free_io_q_entry(entry_ptr);
+
+ entry_ptr = NULL;
+
+ return;
+
+} /* H5FD_ioc__complete_io_q_entry() */
+
+/*-------------------------------------------------------------------------
+ * Function: H5FD_ioc__dispatch_elegible_io_q_entries
+ *
+ * Purpose: Scan the IOC I/O Queue for dispatchable entries, and
+ * dispatch any such entries found.
+ *
+ * Do this by scanning the I/O queue from head to tail for
+ * entries that:
+ *
+ * 1) Have not already been dispatched
+ *
+ * 2) Either:
+ *
+ * a) do not intersect with any prior entries on the
+ * I/O queue, or
+ *
+ * b) Are read requests, and all intersections are with
+ * prior read requests.
+ *
+ * Dispatch any such entries found.
+ *
+ * Do this to maintain the POSIX semantics required by
+ * HDF5.
+ *
+ * Return: void.
+ *
+ * Programmer: JRM -- 11/7/21
+ *
+ * Changes: None.
+ *
+ *-------------------------------------------------------------------------
+ */
+/* TODO: update function when we decide how to handle error reporting in the IOCs */
+/* TODO: Update for per file I/O Queue */
+/* TODO: Keep an eye on statistics and optimize this algorithm if necessary. While it is O(N)
+ * where N is the number of elements in the I/O Queue if there are are no-overlaps, it
+ * can become O(N**2) in the worst case.
+ */
+void
+H5FD_ioc__dispatch_elegible_io_q_entries(void)
+{
+ hbool_t conflict_detected;
+ int64_t entry_offset;
+ int64_t entry_len;
+ int64_t scan_offset;
+ int64_t scan_len;
+ H5FD_ioc_io_queue_entry_t *entry_ptr = NULL;
+ H5FD_ioc_io_queue_entry_t *scan_ptr = NULL;
+
+ hg_thread_mutex_lock(&(io_queue_g.q_mutex));
+
+ HDassert(io_queue_g.magic == H5FD_IOC__IO_Q_MAGIC);
+
+ entry_ptr = io_queue_g.q_head;
+
+ /* sanity check on first element in the I/O queue */
+ HDassert((entry_ptr == NULL) || (entry_ptr->prev == NULL));
+
+ while ((entry_ptr) && (io_queue_g.num_pending > 0)) {
+
+ HDassert(entry_ptr->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC);
+
+ if (!entry_ptr->in_progress) {
+
+ entry_offset = entry_ptr->wk_req.header[1];
+ entry_len = entry_ptr->wk_req.header[0];
+
+ conflict_detected = FALSE;
+
+ scan_ptr = entry_ptr->prev;
+
+ HDassert((scan_ptr == NULL) || (scan_ptr->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC));
+
+ while ((scan_ptr) && (!conflict_detected)) {
+
+ /* check for overlaps */
+ scan_offset = scan_ptr->wk_req.header[1];
+ scan_len = scan_ptr->wk_req.header[0];
+
+ /* at present, I/O requests are scalar -- i.e. single blocks specified by offset and length.
+ * when this changes, this if statment will have to be updated accordingly.
+ */
+ if (!(((scan_offset + scan_len) < entry_offset) ||
+ ((entry_offset + entry_len) < scan_offset))) {
+
+ /* the two request overlap -- unless they are both reads, we have detected a conflict */
+
+ /* TODO: update this if statement when we add collective I/O */
+ if ((entry_ptr->wk_req.tag != READ_INDEP) || (scan_ptr->wk_req.tag != READ_INDEP)) {
+
+ conflict_detected = TRUE;
+ }
+ }
+
+ scan_ptr = scan_ptr->prev;
+ }
+
+ if (!conflict_detected) { /* dispatch I/O request */
+
+ HDassert(scan_ptr == NULL);
+ HDassert(!entry_ptr->in_progress);
+
+ entry_ptr->in_progress = TRUE;
+
+ HDassert(io_queue_g.num_pending > 0);
+
+ io_queue_g.num_pending--;
+ io_queue_g.num_in_progress++;
+
+ HDassert(io_queue_g.num_pending + io_queue_g.num_in_progress == io_queue_g.q_len);
+
+ entry_ptr->thread_wk.func = handle_work_request;
+ entry_ptr->thread_wk.args = entry_ptr;
+
+#if H5FD_IOC__COLLECT_STATS
+ if (io_queue_g.num_in_progress > io_queue_g.max_num_in_progress) {
+
+ io_queue_g.max_num_in_progress = io_queue_g.num_in_progress;
+ }
+
+ io_queue_g.requests_dispatched++;
+
+ entry_ptr->dispatch_time = H5_now_usec();
+
+#endif /* H5FD_IOC__COLLECT_STATS */
+
+ hg_thread_pool_post(ioc_thread_pool, &(entry_ptr->thread_wk));
+ }
+ }
+
+ entry_ptr = entry_ptr->next;
+ }
+
+ hg_thread_mutex_unlock(&(io_queue_g.q_mutex));
+
+} /* H5FD_ioc__dispatch_elegible_io_q_entries() */
+
+/*-------------------------------------------------------------------------
+ * Function: H5FD_ioc__free_io_q_entry
+ *
+ * Purpose: Free the supplied instance of H5FD_ioc_io_queue_entry_t.
+ *
+ * Verify that magic field is set to
+ * H5FD_IOC__IO_Q_ENTRY_MAGIC, and that the next and prev
+ * fields are NULL.
+ *
+ * Return: void.
+ *
+ * Programmer: JRM -- 11/6/21
+ *
+ * Changes: None.
+ *
+ *-------------------------------------------------------------------------
+ */
+/* TODO: update function when we decide how to handle error reporting in the IOCs */
+void
+H5FD_ioc__free_io_q_entry(H5FD_ioc_io_queue_entry_t *q_entry_ptr)
+{
+ /* use assertions for error checking, since the following should never fail. */
+
+ HDassert(q_entry_ptr);
+ HDassert(q_entry_ptr->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC);
+ HDassert(q_entry_ptr->next == NULL);
+ HDassert(q_entry_ptr->prev == NULL);
+ HDassert(q_entry_ptr->wk_req.buffer == NULL);
+
+ q_entry_ptr->magic = 0;
+
+ HDfree(q_entry_ptr);
+
+ q_entry_ptr = NULL;
+
+ return;
+
+} /* H5FD_ioc__free_c_io_q_entry() */
+
+/*-------------------------------------------------------------------------
+ * Function: H5FD_ioc__queue_io_q_entry
+ *
+ * Purpose: Add an I/O request to the tail of the IOC I/O Queue.
+ *
+ * To do this, we must:
+ *
+ * 1) allocate a new instance of H5FD_ioc_io_queue_entry_t
+ *
+ * 2) Initialize the new instance and copy the supplied
+ * instance of sf_work_request_t into it.
+ *
+ * 3) Append it to the IOC I/O queue.
+ *
+ * Note that this does not dispatch the request even if it
+ * is eligible for immediate dispatch. This is done with
+ * a call to H5FD_ioc__dispatch_elegible_io_q_entries().
+ *
+ * Return: void.
+ *
+ * Programmer: JRM -- 11/7/21
+ *
+ * Changes: None.
+ *
+ *-------------------------------------------------------------------------
+ */
+/* TODO: update function when we decide how to handle error reporting in the IOCs */
+/* TODO: Update for per file I/O Queue */
+void
+H5FD_ioc__queue_io_q_entry(sf_work_request_t *wk_req_ptr)
+{
+ H5FD_ioc_io_queue_entry_t *entry_ptr = NULL;
+
+ HDassert(wk_req_ptr);
+ HDassert(io_queue_g.magic == H5FD_IOC__IO_Q_MAGIC);
+
+ entry_ptr = H5FD_ioc__alloc_io_q_entry();
+
+ HDassert(entry_ptr);
+ HDassert(entry_ptr->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC);
+
+ HDmemcpy((void *)(&(entry_ptr->wk_req)), (const void *)wk_req_ptr, sizeof(sf_work_request_t));
+
+ /* must obtain io_queue_g mutex before appending */
+ hg_thread_mutex_lock(&(io_queue_g.q_mutex));
+
+ entry_ptr->counter = io_queue_g.req_counter++;
+
+ io_queue_g.num_pending++;
+
+ H5FD_IOC__Q_APPEND(&io_queue_g, entry_ptr);
+
+ HDassert(io_queue_g.num_pending + io_queue_g.num_in_progress == io_queue_g.q_len);
+
+#if H5FD_IOC__COLLECT_STATS
+
+ entry_ptr->q_time = H5_now_usec();
+
+ if (io_queue_g.q_len > io_queue_g.max_q_len) {
+
+ io_queue_g.max_q_len = io_queue_g.q_len;
+ }
+
+ if (io_queue_g.num_pending > io_queue_g.max_num_pending) {
+
+ io_queue_g.max_num_pending = io_queue_g.num_pending;
+ }
+
+ if (entry_ptr->wk_req.tag == READ_INDEP) {
+
+ io_queue_g.ind_read_requests++;
+ }
+ else if (entry_ptr->wk_req.tag == WRITE_INDEP) {
+
+ io_queue_g.ind_write_requests++;
+ }
+
+ io_queue_g.requests_queued++;
+
+#endif /* H5FD_IOC__COLLECT_STATS */
+
+ hg_thread_mutex_unlock(&(io_queue_g.q_mutex));
+
+ return;
+
+} /* H5FD_ioc__queue_io_q_entry() */
+
+#endif /* JRM */ /* dispatch code -- move elsewhere? */
diff --git a/src/H5FDsubfile_int.c b/src/H5FDsubfile_int.c
index 0d231fa..ecf706f 100644
--- a/src/H5FDsubfile_int.c
+++ b/src/H5FDsubfile_int.c
@@ -71,7 +71,7 @@ static stat_record_t subfiling_stats[TOTAL_STAT_COUNT];
#define SF_READ_WAIT_TIME (subfiling_stats[READ_WAIT].total / (double)subfiling_stats[READ_WAIT].op_count)
#define SF_QUEUE_DELAYS (subfiling_stats[QUEUE_STAT].total)
-#define SF_ALIGNMENT 8
+#define SF_ALIGNMENT 8
static void
maybe_initialize_statistics(void)
@@ -460,7 +460,9 @@ close__subfiles(subfiling_context_t *sf_context, uint64_t fid)
HDassert((sf_context != NULL));
t0 = MPI_Wtime();
-#if MPI_VERSION >= 3 && MPI_SUBVERSION >= 1
+/* TODO: can't use comm world here -- must use communicator set in the file open */
+//#if MPI_VERSION >= 3 && MPI_SUBVERSION >= 1
+#if 0 /* JRM */ /* Just use regular barrier */
MPI_Request b_req = MPI_REQUEST_NULL;
int mpi_status = MPI_Ibarrier(MPI_COMM_WORLD, &b_req);
if (mpi_status == MPI_SUCCESS) {
@@ -502,6 +504,7 @@ close__subfiles(subfiling_context_t *sf_context, uint64_t fid)
* currently open, we can shutdown the IO concentrator
* as part of the file close.
*/
+#if 0 /* JRM */ /* delete this if all goes well */
if (file_open_count == 1) {
/* Shutdown the main IOC thread */
H5FD_ioc_set_shutdown_flag(1);
@@ -514,9 +517,37 @@ close__subfiles(subfiling_context_t *sf_context, uint64_t fid)
t1 = t2;
t_main_exit = t2 - t1;
H5FD_ioc_finalize_threads();
+
+ t2 = MPI_Wtime();
+ }
+#else /* JRM */
+ if (file_open_count == 1) {
+
+ HDassert(0 == atomic_load(&sf_shutdown_flag));
+
+ /* Shutdown the main IOC thread */
+ atomic_init(&sf_shutdown_flag, 1);
+
+ /* Allow ioc_main to exit.*/
+ do {
+
+ usleep(20);
+
+ } while (0 != atomic_load(&sf_shutdown_flag));
+
+ t1 = MPI_Wtime();
+ H5FD_ioc_wait_thread_main();
+ t2 = MPI_Wtime();
+ t1 = t2;
+ t_main_exit = t2 - t1;
+
+ H5FD_ioc_take_down_thread_pool();
+
t2 = MPI_Wtime();
}
+#endif /* JRM */
+
t_finalize_threads = t2 - t1;
if ((subfile_fid = sf_context->sf_fid) > 0) {
@@ -654,8 +685,10 @@ sf_write_data(int fd, int64_t file_offset, void *data_buffer, int64_t data_size,
ssize_t written = 0;
while (bytes_remaining) {
if ((written = pwrite(fd, this_data, (size_t)bytes_remaining, file_offset)) < 0) {
+ int saved_errno = errno;
struct stat statbuf;
perror("pwrite failed!");
+ HDprintf("\nerrno = %d (%s)\n\n", saved_errno, strerror(saved_errno));
fstat(fd, &statbuf);
HDprintf("[ioc(%d) %s] pwrite(fd, data, bytes_remaining=%ld, "
"file_offset=%ld), fd=%d, st_size=%ld\n",
@@ -1502,7 +1535,11 @@ H5FD__open_subfiles(void *_config_info, uint64_t h5_file_id, int flags)
/* Ensure that the IOC service won't exit
* as we prepare to start up..
*/
+#if 0 /* JRM */ /* delete if all goes well */
H5FD_ioc_set_shutdown_flag(0);
+#else /* JRM */
+ atomic_init(&sf_shutdown_flag, 0);
+#endif /* JRM */
/* If we're actually using the IOCs, we will
* start the service threads on the identified
diff --git a/src/H5FDsubfile_mpi.c b/src/H5FDsubfile_mpi.c
index 2204d8d..d6f7cdf 100644
--- a/src/H5FDsubfile_mpi.c
+++ b/src/H5FDsubfile_mpi.c
@@ -43,6 +43,13 @@ atomic_int sf_file_refcount = 0;
atomic_int sf_ioc_fini_refcount = 0;
atomic_int sf_ioc_ready = 0;
atomic_int sf_shutdown_flag = 0;
+#if 1 /* JRM */
+/* sf_io_ops_pending is use to track the number of I/O operations pending so that we can wait
+ * until all I/O operations have been serviced before shutting down the worker thread pool.
+ * The value of this variable must always be non-negative.
+ */
+atomic_int sf_io_ops_pending = 0;
+#endif /* JRM */
/*
* Structure definitions to enable async io completions
@@ -106,9 +113,38 @@ int client_op_index = 0;
int client_op_size = 0;
client_xfer_info_t *client_ops = NULL;
+#if 1 /* JRM */ /* Find a better place for this */
+H5FD_ioc_io_queue_t io_queue_g = {
+ /* magic = */ H5FD_IOC__IO_Q_MAGIC,
+ /* q_head = */ NULL,
+ /* q_tail = */ NULL,
+ /* num_pending = */ 0,
+ /* num_in_progress = */ 0,
+ /* q_len = */ 0,
+ /* req_counter = */ 0,
+ /* q_mutex = */
+ PTHREAD_MUTEX_INITIALIZER
+#if H5FD_IOC__COLLECT_STATS
+ /* comma to allow further initializers */,
+ /* max_q_len = */ 0,
+ /* max_num_pending = */ 0,
+ /* max_num_in_progress = */ 0,
+ /* ind_read_requests = */ 0,
+ /* ind_write_requests = */ 0,
+ /* requests_queued = */ 0,
+ /* requests_dispatched = */ 0,
+ /* requests_completed = */ 0
+#endif /* H5FD_IOC__COLLECT_STATS */
+};
+#endif /* JRM */ /* Find a better place for this */
+
/* const char *sf_subfile_prefix = "."; */
-#define MAX_WORK_PER_RANK 2
+#if 0 /* JRM */
+#define MAX_WORK_PER_RANK 2
+#else /* JRM */
+#define MAX_WORK_PER_RANK 4 /* just to see if this changes anything */
+#endif /* JRM */
#define K(n) ((n)*1024)
#define M(n) ((n) * (1024 * 1024))
#define DEFAULT_STRIPE_SIZE M(32)
@@ -955,6 +991,7 @@ async_completion(void *arg)
* Changes: Initial Version/None.
*-------------------------------------------------------------------------
*/
+#if 0 /* JRM */ /* original version */
static int
write__independent_async(int n_io_concentrators, hid_t context_id, int64_t offset, int64_t elements,
int H5_ATTR_PARALLEL_UNUSED dtype_extent, const void *data, io_req_t **io_req)
@@ -1064,8 +1101,167 @@ write__independent_async(int n_io_concentrators, hid_t context_id, int64_t offse
sf_io_request->prev = sf_io_request->next = NULL;
/* Start the actual data transfer */
+#if 1 /* JRM */ /* experiment with MPI_Issend() */
status = MPI_Isend(data, (int)elements, MPI_BYTE, io_concentrator[ioc_start], WRITE_INDEP_DATA,
sf_context->sf_data_comm, &sf_io_request->completion_func.io_args.io_req);
+#else /* JRM */
+#if 1 /* JRM */ /* experiment with MPI_Send */
+ status = MPI_Issend(data, (int)elements, MPI_BYTE, io_concentrator[ioc_start], WRITE_INDEP_DATA,
+ sf_context->sf_data_comm, &sf_io_request->completion_func.io_args.io_req);
+#else /* JRM */
+ status = MPI_Send(data, (int)elements, MPI_BYTE, io_concentrator[ioc_start], WRITE_INDEP_DATA,
+ sf_context->sf_data_comm);
+#endif /* JRM */
+#endif /* JRM */
+
+ /* When we actually have the async IO support,
+ * the request should be queued before we
+ * return to the caller.
+ * Having queued the IO operation, we might want to
+ * get additional work started before allowing the
+ * queued IO requests to make further progress and/or
+ * to complete, so we just return to the caller.
+ */
+
+ if (status == MPI_SUCCESS) {
+ sf_io_request->completion_func.pending = 1;
+ *io_req = sf_io_request;
+ }
+ else {
+ puts("MPI_Isend must have failed!");
+ free(sf_io_request);
+ *io_req = NULL;
+ }
+ return status;
+} /* end write__independent_async() */
+
+#else /* JRM */ /* modified to use IOC supplied tag for data send */
+
+static int
+write__independent_async(int n_io_concentrators, hid_t context_id, int64_t offset, int64_t elements,
+ int H5_ATTR_PARALLEL_UNUSED dtype_extent, const void *data, io_req_t **io_req)
+{
+
+ int ack = 0, active_sends = 0, n_waiting = 0, status = 0;
+ int64_t stripe_size, ioc_row, start_id, ioc_start, ioc_offset;
+ int * io_concentrator = NULL;
+ io_req_t * sf_io_request = NULL;
+ MPI_Request ackrequest;
+ int64_t msg[3] = {
+ 0,
+ };
+
+ subfiling_context_t *sf_context = get__subfiling_object(context_id);
+ assert(sf_context != NULL);
+
+ /* Calculate the IOC that we'll send the IO request to */
+ stripe_size = sf_context->sf_stripe_size;
+
+ start_id = offset / stripe_size;
+ ioc_row = start_id / n_io_concentrators;
+ ioc_offset = (offset % stripe_size) + (ioc_row * stripe_size);
+ ioc_start = start_id % n_io_concentrators;
+
+ io_concentrator = sf_context->topology->io_concentrator;
+ assert(io_concentrator != NULL);
+
+ /* Make sure that we can return a request structure
+ * if everything is working correctly
+ */
+ assert(io_req);
+
+ /* Prepare an IO request.
+ * This gets sent to the ioc identified by the file offset.
+ * (see above: Calculate the IOC))
+ */
+ msg[0] = elements;
+ msg[1] = ioc_offset;
+ msg[2] = context_id;
+#ifdef VERBOSE
+ printf("[%s ioc(%ld)] elements=%ld, offset=%ld, file_offset=%ld\n", __func__, ioc_start, elements, offset,
+ ioc_offset);
+ fflush(stdout);
+#endif
+ status = MPI_Send(msg, 3, MPI_INT64_T, io_concentrator[ioc_start], WRITE_INDEP, sf_context->sf_msg_comm);
+ if (status != MPI_SUCCESS) {
+ int len;
+ char estring[MPI_MAX_ERROR_STRING];
+ MPI_Error_string(status, estring, &len);
+ printf("[%d] ERROR! MPI_Send of %ld bytes to %d returned an "
+ "error(%s)\n",
+ WORLD_RANK(sf_context), sizeof(msg), io_concentrator[ioc_start], estring);
+ fflush(stdout);
+ return -1;
+ }
+ else
+ active_sends++;
+ /*
+ * We wait for memory to be allocated on the target IOC so that we can
+ * start sending user data. Once memory is allocated, we will receive
+ * an ACK (or NACK) message from the IOC to allow us to proceed.
+ */
+ /* On ACK, IOC will send tag to be used for data send -- need this to
+ * distinguish between multiple concurrent writes from a single rank.
+ */
+ status = MPI_Irecv(&ack, 1, MPI_INT, io_concentrator[ioc_start], WRITE_INDEP_ACK,
+ sf_context->sf_data_comm, &ackrequest);
+
+ if (status != MPI_SUCCESS) {
+ printf("[%d %s] MPI_Irecv failed\n", WORLD_RANK(sf_context), __func__);
+ fflush(stdout);
+ return -1;
+ }
+
+ n_waiting = active_sends;
+
+ while (n_waiting) {
+ int flag = 0;
+ status = MPI_Test(&ackrequest, &flag, MPI_STATUS_IGNORE);
+ if (status == MPI_SUCCESS) {
+ if (flag == 0)
+ usleep(0);
+ else {
+ n_waiting--;
+ if (ack == 0) { /* NACK */
+ printf("%s - Received NACK!\n", __func__);
+ }
+ }
+ }
+ }
+
+ /* At this point in the new implementation, we should queue
+ * the async write so that when the top level VFD tells us
+ * to complete all pending IO requests, we have all the info
+ * we need to accomplish that.
+ */
+ sf_io_request = (io_req_t *)malloc(sizeof(io_req_t));
+ assert(sf_io_request);
+
+ sf_io_request->completion_func.io_args.ioc = (int)ioc_start;
+ sf_io_request->completion_func.io_args.context_id = context_id;
+ sf_io_request->completion_func.io_args.offset = offset;
+ sf_io_request->completion_func.io_args.elements = elements;
+ sf_io_request->completion_func.io_args.data = cast_to_void(data);
+ sf_io_request->completion_func.io_args.io_req = MPI_REQUEST_NULL;
+ sf_io_request->completion_func.io_function = async_completion;
+ sf_io_request->completion_func.pending = 0;
+
+ sf_io_request->prev = sf_io_request->next = NULL;
+ /* Start the actual data transfer */
+
+#if 1 /* JRM */ /* experiment with MPI_Issend() */
+ /* use ack from IOC as the tag for the send */
+ status = MPI_Isend(data, (int)elements, MPI_BYTE, io_concentrator[ioc_start], ack,
+ sf_context->sf_data_comm, &sf_io_request->completion_func.io_args.io_req);
+#else /* JRM */
+#if 1 /* JRM */ /* experiment with MPI_Send */
+ status = MPI_Issend(data, (int)elements, MPI_BYTE, io_concentrator[ioc_start], WRITE_INDEP_DATA,
+ sf_context->sf_data_comm, &sf_io_request->completion_func.io_args.io_req);
+#else /* JRM */
+ status = MPI_Send(data, (int)elements, MPI_BYTE, io_concentrator[ioc_start], WRITE_INDEP_DATA,
+ sf_context->sf_data_comm);
+#endif /* JRM */
+#endif /* JRM */
/* When we actually have the async IO support,
* the request should be queued before we
@@ -1088,6 +1284,8 @@ write__independent_async(int n_io_concentrators, hid_t context_id, int64_t offse
return status;
} /* end write__independent_async() */
+#endif /* JRM */ /* modified to use IOC supplied tag for data send */
+
/*
* Function: H5FD__write_vector_internal
*
@@ -1105,7 +1303,7 @@ write__independent_async(int n_io_concentrators, hid_t context_id, int64_t offse
*/
herr_t
H5FD__write_vector_internal(hid_t h5_fid, hssize_t count, haddr_t addrs[], size_t sizes[],
- const void *bufs[] /* data_in */)
+ const void *bufs[] /* in */)
{
herr_t ret_value = SUCCEED;
hssize_t status = 0, k = 0;
@@ -1161,8 +1359,10 @@ H5FD__write_vector_internal(hid_t h5_fid, hssize_t count, haddr_t addrs[], size_
* We can can now try to complete those before returning
* to the caller for the next set of IO operations.
*/
+#if 1 /* JRM */ /* experiment with synchronous send */
if (sf_async_reqs[0]->completion_func.io_function)
ret_value = (*sf_async_reqs[0]->completion_func.io_function)(mpi_reqs);
+#endif /* JRM */
if (active_reqs)
free(active_reqs);
@@ -1188,7 +1388,7 @@ errors:
*/
herr_t
H5FD__read_vector_internal(hid_t h5_fid, hssize_t count, haddr_t addrs[], size_t sizes[],
- void *bufs[] /* data_out */)
+ void *bufs[] /* out */)
{
herr_t ret_value = SUCCEED;
hssize_t status = 0, k = 0;
@@ -1265,6 +1465,7 @@ sf_truncate(hid_t h5_fid, haddr_t H5_ATTR_PARALLEL_UNUSED addr)
return 0;
}
+#if 1 /* JRM */ /* delete this if all goes well */
int
sf_shutdown_local_ioc(hid_t fid)
{
@@ -1276,7 +1477,40 @@ sf_shutdown_local_ioc(hid_t fid)
}
return 0;
}
+#else /* JRM */
+
+/*-------------------------------------------------------------------------
+ * Function: sf_shutdown_local_ioc()
+ *
+ * Purpose: Set the sf_shutdown_flag, and wait until the local
+ * I/O Concentrator shuts down.
+ *
+ * Return: Void
+ *
+ * Errors: None
+ *
+ * Programmer: JRM -- 10/26/21
+ *
+ * Changes: None.
+ *
+ *-------------------------------------------------------------------------
+ */
+void
+sf_shutdown_local_ioc(hid_t fid)
+{
+ hid_t context_id = fid_map_to_context((uint64_t)fid);
+ subfiling_context_t *sf_context = get__subfiling_object(context_id);
+ assert(sf_context != NULL);
+ if (sf_context->topology->rank_is_ioc) {
+ atomic_fetch_add(&sf_shutdown_flag, 1);
+ }
+ return;
+
+} /* sf_shutdown_local_ioc() */
+#endif /* JRM */
+
+#if 0 /* JRM */ /* original version of ioc_main() */
/*-------------------------------------------------------------------------
* Function: Public/IOC ioc_main
*
@@ -1381,9 +1615,22 @@ ioc_main(int64_t context_id)
atomic_init(&sf_ioc_fini_refcount, 0);
atomic_init(&sf_shutdown_flag, 0);
atomic_init(&sf_ioc_ready, 1);
+#if 1 /* JRM */
+ /* this variable is incremented by tpool_add_work(), and decremented when the
+ * received I/O request is completed.
+ *
+ * On shutdown, we must wait until this field is decremented to zero before
+ * taking down the thread pool.
+ */
+ atomic_init(&sf_io_ops_pending, 0);
+#endif /* JRM */
shutdown_requested = 0;
+#if 0 /* JRM */
while (!shutdown_requested || sf_work_pending) {
+#else /* JRM */
+ while ( ( ! shutdown_requested ) || ( 0 < atomic_load(&sf_io_ops_pending) ) || sf_work_pending) {
+#endif /* JRM */
flag = 0;
ret = MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, context->sf_msg_comm, &flag, &status);
if ((ret == MPI_SUCCESS) && (flag != 0)) {
@@ -1394,6 +1641,14 @@ ioc_main(int64_t context_id)
int source = status.MPI_SOURCE;
int tag = status.MPI_TAG;
+#if 1 /* JRM */
+ if ( ( tag != READ_INDEP ) && ( tag != WRITE_INDEP ) ) {
+
+ HDprintf("\n\nioc_main: recieved non READ_INDEP / WRITE_INDEP mssg. tag = %d.\n\n", tag);
+ HDfflush(stdout);
+ }
+#endif /* JRM */
+
MPI_Get_count(&status, MPI_BYTE, &count);
if (count > request_size) {
msg = (sf_work_request_t *)malloc((size_t)count);
@@ -1456,12 +1711,145 @@ ioc_main(int64_t context_id)
return 0;
}
+#else /* JRM */ /* re-written version of ioc_main() */
+
+int
+ioc_main(int64_t context_id)
+{
+ int subfile_rank;
+ int flag, ret;
+ int max_work_depth;
+ int shutdown_requested;
+ MPI_Status status, msg_status;
+ sf_work_request_t wk_req;
+ useconds_t delay = 20;
+ subfiling_context_t *context = get__subfiling_object(context_id);
+ double queue_start_time;
+
+ assert(context != NULL);
+ /* We can't have opened any files at this point..
+ * The file open approach has changed so that the normal
+ * application rank (hosting this thread) does the file open.
+ * We can simply utilize the file descriptor (which should now
+ * represent an open file).
+ */
+
+ subfile_rank = context->sf_group_rank;
+
+ /* zero out the wk_req, since the received message will typically be smaller
+ * than sizeof(sf_work_request_t).
+ */
+ HDmemset(&wk_req, 0, sizeof(sf_work_request_t));
+
+ /* Initialize atomic vars */
+ /* JRM */ /* delete most of these? */
+ atomic_init(&sf_workinprogress, 0);
+ atomic_init(&sf_work_pending, 0);
+ atomic_init(&sf_file_close_count, 0);
+ atomic_init(&sf_file_refcount, 0);
+ atomic_init(&sf_ioc_fini_refcount, 0);
+ atomic_init(&sf_shutdown_flag, 0);
+ atomic_init(&sf_ioc_ready, 1);
+#if 1 /* JRM */
+ /* this variable is incremented by tpool_add_work(), and decremented when the
+ * received I/O request is completed.
+ *
+ * On shutdown, we must wait until this field is decremented to zero before
+ * taking down the thread pool.
+ */
+ atomic_init(&sf_io_ops_pending, 0);
+#endif /* JRM */
+ shutdown_requested = 0;
+
+ while ((!shutdown_requested) || (0 < atomic_load(&sf_io_ops_pending)) || sf_work_pending) {
+
+ flag = 0;
+ ret = MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, context->sf_msg_comm, &flag, &status);
+ if ((ret == MPI_SUCCESS) && (flag != 0)) {
+ sf_work_request_t *msg = NULL;
+ int count;
+ int index = 0;
+ int request_size = (int)sizeof(sf_work_request_t);
+ int source = status.MPI_SOURCE;
+ int tag = status.MPI_TAG;
+
+#if 1 /* JRM */
+ if ((tag != READ_INDEP) && (tag != WRITE_INDEP)) {
+
+ HDprintf("\n\nioc_main: recieved non READ_INDEP / WRITE_INDEP mssg. tag = %d.\n\n", tag);
+ HDfflush(stdout);
+ }
+#endif /* JRM */
+
+ MPI_Get_count(&status, MPI_BYTE, &count);
+
+ /* convert this assert to a proper error message once we decide how to handle error
+ * reporting from the I/O concentrator.
+ */
+ HDassert(count <= sizeof(sf_work_request_t));
+
+ /* zero out the wk_req, since the received message will typically be smaller
+ * than sizeof(sf_work_request_t).
+ */
+ HDmemset(&wk_req, 0, sizeof(sf_work_request_t));
+
+ ret = MPI_Recv(&wk_req, count, MPI_BYTE, source, tag, context->sf_msg_comm, &msg_status);
+
+ if (MPI_SUCCESS == ret) {
+
+ int howmany = 0;
+
+ MPI_Get_count(&msg_status, MPI_BYTE, &howmany);
+
+ if (howmany != count) {
+ printf("%s: MPI_Recv completed %d bytes of %d\n", __func__, howmany, count);
+ fflush(stdout);
+ }
+ }
+
+ queue_start_time = MPI_Wtime();
+
+ if (ret == MPI_SUCCESS) {
+
+ int curr_io_ops_pending;
+
+ wk_req.tag = tag;
+ wk_req.source = source;
+ wk_req.subfile_rank = subfile_rank;
+ wk_req.start_time = queue_start_time;
+ wk_req.buffer = NULL;
+
+ curr_io_ops_pending = atomic_fetch_add(&sf_io_ops_pending, 1);
+
+ HDassert(curr_io_ops_pending >= 0);
+
+ H5FD_ioc__queue_io_q_entry(&wk_req);
+
+ H5FD_ioc__dispatch_elegible_io_q_entries();
+ }
+ }
+ else {
+ usleep(delay);
+ }
+ shutdown_requested = atomic_load(&sf_shutdown_flag);
+ }
+
+ /* Reset the shutdown flag */
+ atomic_init(&sf_shutdown_flag, 0);
+
+ return 0;
+
+} /* ioc_main() */
+
+#endif /* JRM */ /* re-written versin of ioc_main() */
+
/*
=========================================
Private helper functions
=========================================
*/
+#if 0 /* JRM */ /* original version */
static int
send_ack__(int target, int subfile_rank, int tag, MPI_Comm comm)
{
@@ -1476,6 +1864,27 @@ send_ack__(int target, int subfile_rank, int tag, MPI_Comm comm)
#endif
return ret;
}
+#else /* JRM */ /* version modified to send expected data send tag */
+
+static int
+send_ack__(int target, int subfile_rank, int tag, MPI_Comm comm, int ack)
+{
+
+ HDassert(ack > 0);
+
+ int ret = MPI_Send(&ack, 1, MPI_INT, target, tag, comm);
+#ifndef NDEBUG
+ if (sf_verbose_flag) {
+ if (sf_logfile) {
+ fprintf(sf_logfile, "[ioc(%d): Sending ACK to MPI_rank(%d)\n", subfile_rank, target);
+ }
+ }
+#endif
+ return ret;
+
+} /* send_ack__() */
+
+#endif /* JRM */ /* version modified to send expected data send tag */
static int
send_nack__(int target, int subfile_rank, int tag, MPI_Comm comm)
@@ -1521,10 +1930,14 @@ from the thread pool threads...
*
*-------------------------------------------------------------------------
*/
+#if 0 /* JRM */ /* original version */
int
queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm)
{
int fd;
+#if 1 /* JRM */
+ int actual_bytes_received;
+#endif /* JRM */
char * recv_buffer = NULL;
int ret = MPI_SUCCESS;
MPI_Status msg_status;
@@ -1572,6 +1985,21 @@ queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm
send_ack__(source, subfile_rank, WRITE_INDEP_ACK, comm);
ret = MPI_Recv(recv_buffer, (int)data_size, MPI_BYTE, source, WRITE_INDEP_DATA, comm, &msg_status);
+#if 1 /* JRM */
+ if ( MPI_SUCCESS != MPI_Get_count(&msg_status, MPI_BYTE, &actual_bytes_received) ) {
+
+ HDprintf("\n\nqueue_write_indep(): can't get actual bytes receive.\n\n");
+ HDfflush(stdout);
+
+ } else if ( actual_bytes_received != data_size ) {
+
+ HDprintf("\n\nqueue_write_indep(): message size mismatch -- expected = %ld, actual = %d.\n\n",
+ data_size, actual_bytes_received);
+ HDfflush(stdout);
+
+ }
+#endif /* JRM */
+
t_end = MPI_Wtime();
t_wait = t_end - t_start;
sf_write_wait_time += t_wait;
@@ -1635,6 +2063,140 @@ queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm
return 0;
}
+#else /* JRM */ /* version modified for new dispatch code */
+
+int
+queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm, int counter)
+{
+ int fd;
+#if 1 /* JRM */
+ int actual_bytes_received;
+#endif /* JRM */
+ int rcv_tag = ((counter & 0xFFFF) << 12) | WRITE_INDEP_DATA;
+ char * recv_buffer = NULL;
+ int ret = MPI_SUCCESS;
+ MPI_Status msg_status;
+ int64_t data_size = msg->header[0];
+ int64_t file_offset = msg->header[1];
+ int64_t file_context_id = msg->header[2];
+ double t_start, t_end;
+ double t_write, t_wait, t_queue_delay;
+ subfiling_context_t *sf_context = get__subfiling_object(file_context_id);
+ int64_t stripe_id = file_offset + data_size;
+ haddr_t sf_eof;
+ assert(sf_context != NULL);
+
+ sf_eof = (haddr_t)(stripe_id % sf_context->sf_stripe_size);
+ stripe_id /= sf_context->sf_stripe_size;
+ sf_eof += (haddr_t)((stripe_id * sf_context->sf_blocksize_per_stripe) + sf_context->sf_base_addr);
+
+ /* flag that we've attempted to write data to the file */
+ sf_context->sf_write_count++;
+ /* For debugging performance */
+ sf_write_ops++;
+
+ t_start = MPI_Wtime();
+ t_queue_delay = t_start - msg->start_time;
+
+#ifndef NDEBUG
+ if (sf_verbose_flag) {
+ if (sf_logfile) {
+ fprintf(sf_logfile,
+ "[ioc(%d) %s]: msg from %d: datasize=%ld\toffset=%ld, "
+ "queue_delay = %lf seconds\n",
+ subfile_rank, __func__, source, data_size, file_offset, t_queue_delay);
+ }
+ }
+#endif
+
+ if (recv_buffer == NULL) {
+ if ((recv_buffer = (char *)malloc((size_t)data_size)) == NULL) {
+ perror("malloc");
+ send_nack__(source, subfile_rank, WRITE_INDEP_ACK, comm);
+ return -1;
+ }
+ }
+
+ send_ack__(source, subfile_rank, WRITE_INDEP_ACK, comm, rcv_tag);
+ ret = MPI_Recv(recv_buffer, (int)data_size, MPI_BYTE, source, rcv_tag, comm, &msg_status);
+
+#if 1 /* JRM */
+ if (MPI_SUCCESS != MPI_Get_count(&msg_status, MPI_BYTE, &actual_bytes_received)) {
+
+ HDprintf("\n\nqueue_write_indep(): can't get actual bytes receive.\n\n");
+ HDfflush(stdout);
+ }
+ else if (actual_bytes_received != data_size) {
+
+ HDprintf("\n\nqueue_write_indep(): message size mismatch -- expected = %ld, actual = %d.\n\n",
+ data_size, actual_bytes_received);
+ HDfflush(stdout);
+ }
+#endif /* JRM */
+
+ t_end = MPI_Wtime();
+ t_wait = t_end - t_start;
+ sf_write_wait_time += t_wait;
+ t_start = t_end;
+#ifndef NDEBUG
+ if (sf_verbose_flag) {
+ if (sf_logfile) {
+ fprintf(sf_logfile, "[ioc(%d) %s] MPI_Recv(%ld bytes, from = %d) status = %d\n", subfile_rank,
+ __func__, data_size, source, ret);
+ }
+ }
+#endif
+
+ if (ret != MPI_SUCCESS) {
+ int len;
+ char estring[MPI_MAX_ERROR_STRING];
+ MPI_Error_string(ret, estring, &len);
+ printf("[ioc(%d) %s] MPI_ERROR(%d)! MPI_Recv of %ld bytes from %d "
+ "returned an error(%s)\n",
+ subfile_rank, __func__, msg_status.MPI_ERROR, data_size, source, estring);
+ fflush(stdout);
+ return ret;
+ }
+
+ fd = sf_context->sf_fid;
+
+ if (fd < 0) {
+ printf("[ioc(%d)] WARNING: %s called while subfile_fid = %d (closed)\n", subfile_rank, __func__, fd);
+ fflush(stdout);
+ }
+ else {
+ if (sf_write_data(fd, file_offset, recv_buffer, data_size, subfile_rank) < 0) {
+ free(recv_buffer);
+ recv_buffer = NULL;
+ printf("[ioc(%d) %s] sf_write_data returned an error!\n", subfile_rank, __func__);
+ fflush(stdout);
+ return -1;
+ }
+ t_end = MPI_Wtime();
+ t_write = t_end - t_start;
+ sf_pwrite_time += t_write;
+ }
+
+ sf_queue_delay_time += t_queue_delay;
+
+ /* Done... */
+ if (sf_eof > sf_context->sf_eof)
+ sf_context->sf_eof = sf_eof;
+
+#ifdef VERBOSE
+ printf("[ioc(%d)] %s local sf_eof = %ld sf_context=%p\n", subfile_rank, __func__, sf_context->sf_eof,
+ (void *)sf_context);
+ fflush(stdout);
+#endif
+ if (recv_buffer) {
+ free(recv_buffer);
+ }
+ return 0;
+
+} /* queue_write_indep() */
+
+#endif /* JRM */ /* version modified for new dispatch code */
+
/*-------------------------------------------------------------------------
* Function: Public/IOC queue_read_indep
*
@@ -1655,6 +2217,93 @@ queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm
*
*-------------------------------------------------------------------------
*/
+#if 0 /* JRM */ /* original version */
+int
+queue_read_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm)
+{
+ int fd;
+ char * send_buffer = NULL;
+ int ret = MPI_SUCCESS;
+ int64_t data_size = msg->header[0];
+ int64_t file_offset = msg->header[1];
+ int64_t file_context_id = msg->header[2];
+ double t_start, t_end;
+ double t_read, t_queue_delay;
+
+ subfiling_context_t *sf_context = get__subfiling_object(file_context_id);
+ assert(sf_context != NULL);
+
+ sf_context->sf_read_count++;
+ /* For debugging performance */
+ sf_read_ops++;
+
+ t_start = MPI_Wtime();
+ t_queue_delay = t_start - msg->start_time;
+
+ fd = sf_context->sf_fid;
+ if (fd < 0) {
+ printf("[ioc(%d) %s] subfile(%d) file descriptor not valid\n", subfile_rank, __func__, fd);
+ return -1;
+ }
+
+#ifndef NDEBUG
+ if (sf_verbose_flag && (sf_logfile != NULL)) {
+ fprintf(sf_logfile,
+ "[ioc(%d) %s] msg from %d: datasize=%ld\toffset=%ld "
+ "queue_delay=%lf seconds\n",
+ subfile_rank, __func__, source, data_size, file_offset, t_queue_delay);
+ }
+#endif
+ if ((send_buffer = (char *)malloc((size_t)data_size)) == NULL) {
+ perror("malloc");
+ return -1;
+ }
+
+ if (sf_read_data(fd, file_offset, send_buffer, data_size, subfile_rank) < 0) {
+ printf("[%d] %s - sf_read_data fd=%d for source(%d) returned an error!\n", subfile_rank, __func__, fd,
+ source);
+ fflush(stdout);
+ /*
+ * Should send a zero(0) byte message to the client to prevent
+ * it from hanging...
+ */
+ MPI_Send(send_buffer, 0, MPI_BYTE, source, READ_INDEP_DATA, comm);
+ free(send_buffer);
+ return -1;
+ }
+
+ ret = MPI_Send(send_buffer, (int)data_size, MPI_BYTE, source, READ_INDEP_DATA, comm);
+ if (ret != MPI_SUCCESS) {
+ int len;
+ char estring[MPI_MAX_ERROR_STRING];
+ MPI_Error_string(ret, estring, &len);
+ printf("[ioc(%d)] ERROR! MPI_Send of %ld bytes to %d returned an "
+ "error(%s)\n",
+ subfile_rank, data_size, source, estring);
+ fflush(stdout);
+ return ret;
+ }
+ t_end = MPI_Wtime();
+ t_read = t_end - t_start;
+ sf_pread_time += t_read;
+ sf_queue_delay_time += t_queue_delay;
+
+#ifndef NDEBUG
+ if (sf_verbose_flag && (sf_logfile != NULL)) {
+ fprintf(sf_logfile, "[ioc(%d)] MPI_Send to source(%d) completed\n", subfile_rank, source);
+ }
+#endif
+
+ if (send_buffer) {
+ free(send_buffer);
+ send_buffer = NULL;
+ }
+
+ return 0;
+} /* end queue_read_indep() */
+
+#else /* JRM */ /* version modified for new dispatch code */
+
int
queue_read_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm)
{
@@ -1739,6 +2388,8 @@ queue_read_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm
return 0;
} /* end queue_read_indep() */
+#endif /* JRM */ /* version modified for new dispatch code */
+
/* ---------------------------------------------------
* Helper function for subfiling_open_file() see below
* Subfiles should be located in the same directory
@@ -1824,7 +2475,7 @@ get__subfile_name(subfiling_context_t *sf_context, int64_t h5_file_id, int subfi
int
subfiling_open_file(sf_work_request_t *msg, int subfile_rank, int flags)
{
- int errors = 0;
+ int errors = 0;
char filepath[PATH_MAX];
char linebuf[PATH_MAX];
diff --git a/src/H5FDsubfiling.c b/src/H5FDsubfiling.c
index b19df57..cd7739d 100644
--- a/src/H5FDsubfiling.c
+++ b/src/H5FDsubfiling.c
@@ -898,8 +898,8 @@ done:
static herr_t
H5FD__subfiling_close(H5FD_t *_file)
{
- H5FD_subfiling_t *file_ptr = (H5FD_subfiling_t *)_file;
- herr_t ret_value = SUCCEED; /* Return value */
+ H5FD_subfiling_t * file_ptr = (H5FD_subfiling_t *)_file;
+ herr_t ret_value = SUCCEED; /* Return value */
subfiling_context_t *sf_context = NULL;
FUNC_ENTER_NOAPI_NOINIT
@@ -1017,13 +1017,18 @@ done:
* Purpose: Set the flags that this VFL driver is capable of supporting.
* (listed in H5FDpublic.h)
*
+ * For now, duplicate the flags used for the MPIO VFD.
+ * Revisit this when we have a version of the subfiling VFD
+ * that is usable in serial builds.
+ *
* Return: SUCCEED (Can't fail)
*
- * Programmer: Quincey Koziol
- * Friday, August 25, 2000
+ * Programmer: John Mainzer
+ * 11/15/21
*
*-------------------------------------------------------------------------
*/
+#if 0 /* JRM */ /* original version -- delete if all goes well */
static herr_t
H5FD__subfiling_query(const H5FD_t *_file, unsigned long *flags /* out */)
{
@@ -1062,6 +1067,28 @@ H5FD__subfiling_query(const H5FD_t *_file, unsigned long *flags /* out */)
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5FD_subfiling_query() */
+#else /* JRM */ /* new version copied from MPIO VFD */
+
+static herr_t
+H5FD__subfiling_query(const H5FD_t H5_ATTR_UNUSED *_file, unsigned long *flags /* out */)
+{
+ FUNC_ENTER_STATIC_NOERR
+
+ /* Set the VFL feature flags that this driver supports */
+ if (flags) {
+ *flags = 0;
+ *flags |= H5FD_FEAT_AGGREGATE_METADATA; /* OK to aggregate metadata allocations */
+ *flags |= H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */
+ // *flags |= H5FD_FEAT_HAS_MPI; /* This driver uses MPI */
+ *flags |= H5FD_FEAT_ALLOCATE_EARLY; /* Allocate space early instead of late */
+ *flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default
+ VFD */
+ }
+
+ FUNC_LEAVE_NOAPI(SUCCEED)
+} /* end H5FD__mpio_query() */
+
+#endif /* JRM */ /* new version copied from MPIO VFD */
/*-------------------------------------------------------------------------
* Function: H5FD_subfiling_get_eoa
@@ -1577,15 +1604,15 @@ H5FD__subfiling_write(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_AT
size, /* (in) IO size */
1); /* (in) data extent of the 'type' assumes byte */
#else /* JRM */
- count = init__indep_io(sf_context, /* We use the context to look up config info */
+ count = init__indep_io(sf_context, /* We use the context to look up config info */
max_depth, ioc_total, (int64_t *)source_data_offset, /* (out) Memory offset */
(int64_t *)sf_data_size, /* (out) Length of this contiguous block */
(int64_t *)sf_offset, /* (out) File offset */
- &ioc_start, /* (out) IOC index corresponding to starting offset */
- &ioc_count, /* (out) number of actual IOCs used */
- offset, /* (in) Starting file offset */
- (int64_t)size, /* (in) IO size */
- 1); /* (in) data extent of the 'type' assumes byte */
+ &ioc_start, /* (out) IOC index corresponding to starting offset */
+ &ioc_count, /* (out) number of actual IOCs used */
+ offset, /* (in) Starting file offset */
+ (int64_t)size, /* (in) IO size */
+ 1); /* (in) data extent of the 'type' assumes byte */
#endif /* JRM */
next = ioc_start;
@@ -1626,7 +1653,7 @@ H5FD__subfiling_write(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_AT
#if 0 /* JRM */
int vectorlen = ioc_count;
#else /* JRM */
- uint32_t vectorlen = (uint32_t)ioc_count;
+ uint32_t vectorlen = (uint32_t)ioc_count;
#endif /* JRM */
/*
@@ -1725,7 +1752,9 @@ done:
/*-------------------------------------------------------------------------
* Function: H5FD__subfile_read_vector (internal function)
*
- * Purpose: Perform count reads from the specified file at the offsets
+ * Purpose: Vector Read function for the sub-filing VFD.
+ *
+ * Perform count reads from the specified file at the offsets
* provided in the addrs array, with the lengths and memory
* types provided in the sizes and types arrays. Data read
* is returned in the buffers provided in the bufs array.
@@ -1741,10 +1770,21 @@ done:
* Failure: FAIL
* The contents of supplied buffers are undefined.
*
- * Programmer: JRM -- 6/10/20
+ * Programmer: RAW -- ??/??/21
*
* Changes: None.
*
+ * Notes: Thus function doesn't actually implement vector read.
+ * Instead, it comverts the vector read call into a series
+ * of scalar read calls. Fix this when time permits.
+ *
+ * Also, it didn't support the sizes and types optimization.
+ * I implemented a version of this which is more generous
+ * than that currently defined in the RFC. This is good
+ * enough for now, but the final version should follow
+ * the RFC.
+ * JRM -- 10/5/21
+ *
*-------------------------------------------------------------------------
*/
static herr_t
@@ -1787,10 +1827,64 @@ H5FD__subfiling_read_vector(H5FD_t *_file, hid_t dxpl_id, uint32_t count, H5FD_m
/* Set DXPL for operation */
H5CX_set_dxpl(dxpl_id);
+
+ /* TODO: setup real support for vector I/O */
if (file_ptr->fa.require_ioc) {
- int k;
+
+ hbool_t extend_sizes = FALSE;
+ hbool_t extend_types = FALSE;
+ int k;
+ size_t size;
+ H5FD_mem_t type;
+ haddr_t eoa;
+
+ HDassert((count == 0) || (sizes[0] != 0));
+ HDassert((count == 0) || (types[0] != H5FD_MEM_NOLIST));
+
+ /* Note that the following code does not let the sub-filing VFD participate
+ * in collective calls when thre is no data to write. This is not an issue
+ * now, as we don't do anything special with collective operations. However
+ * this needs to be fixed.
+ */
for (k = 0; k < (int)count; k++) {
- if (H5FD__subfiling_read(_file, types[k], dxpl_id, addrs[k], sizes[k], bufs[k]) != SUCCEED)
+
+ if (!extend_sizes) {
+
+ if (sizes[k] == 0) {
+
+ extend_sizes = TRUE;
+ size = sizes[k - 1];
+ }
+ else {
+
+ size = sizes[k];
+ }
+ }
+
+ if (!extend_types) {
+
+ if (types[k] == H5FD_MEM_NOLIST) {
+
+ extend_types = TRUE;
+ type = types[k - 1];
+ }
+ else {
+
+ type = types[k];
+ }
+ }
+
+ if (HADDR_UNDEF == (eoa = H5FD__subfiling_get_eoa(_file, type)))
+ HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL, "driver get_eoa request failed")
+
+ if ((addrs[k] + size) > eoa)
+
+ HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL,
+ "addr overflow, addrs[%d] = %llu, sizes[%d] = %llu, eoa = %llu", (int)k,
+ (unsigned long long)(addrs[k]), (int)k, (unsigned long long)size,
+ (unsigned long long)eoa)
+
+ if (H5FD__subfiling_read(_file, type, dxpl_id, addrs[k], size, bufs[k]) != SUCCEED)
HGOTO_ERROR(H5E_VFL, H5E_READERROR, FAIL, "file vector read request failed")
}
}
@@ -1826,10 +1920,21 @@ done:
* input arguments are not valid, or the actual
* subfiling writes have failed for some reason.
*
- * Programmer: JRM -- 6/10/20
+ * Programmer: RAW -- ??/??/21
*
* Changes: None.
*
+ * Notes: Thus function doesn't actually implement vector write.
+ * Instead, it comverts the vector write call into a series
+ * of scalar read calls. Fix this when time permits.
+ *
+ * Also, it didn't support the sizes and types optimization.
+ * I implemented a version of this which is more generous
+ * than that currently defined in the RFC. This is good
+ * enough for now, but the final version should follow
+ * the RFC.
+ * JRM -- 10/5/21
+ *
*-------------------------------------------------------------------------
*/
static herr_t
@@ -1873,9 +1978,61 @@ H5FD__subfiling_write_vector(H5FD_t *_file, hid_t dxpl_id, uint32_t count, H5FD_
}
/* Call the subfiling IOC write*/
if (file_ptr->fa.require_ioc) {
- int k;
+
+ hbool_t extend_sizes = FALSE;
+ hbool_t extend_types = FALSE;
+ int k;
+ size_t size;
+ H5FD_mem_t type;
+ haddr_t eoa;
+
+ HDassert((count == 0) || (sizes[0] != 0));
+ HDassert((count == 0) || (types[0] != H5FD_MEM_NOLIST));
+
+ /* Note that the following code does not let the sub-filing VFD participate
+ * in collective calls when thre is no data to write. This is not an issue
+ * now, as we don't do anything special with collective operations. However
+ * this needs to be fixed.
+ */
for (k = 0; k < (int)count; k++) {
- if (H5FD__subfiling_write(_file, types[k], dxpl_id, addrs[k], sizes[k], bufs[k]) != SUCCEED)
+
+ if (!extend_sizes) {
+
+ if (sizes[k] == 0) {
+
+ extend_sizes = TRUE;
+ size = sizes[k - 1];
+ }
+ else {
+
+ size = sizes[k];
+ }
+ }
+
+ if (!extend_types) {
+
+ if (types[k] == H5FD_MEM_NOLIST) {
+
+ extend_types = TRUE;
+ type = types[k - 1];
+ }
+ else {
+
+ type = types[k];
+ }
+ }
+
+ if (HADDR_UNDEF == (eoa = H5FD__subfiling_get_eoa(_file, type)))
+ HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL, "driver get_eoa request failed")
+
+ if ((addrs[k] + size) > eoa)
+
+ HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL,
+ "addr overflow, addrs[%d] = %llu, sizes[%d] = %llu, eoa = %llu", (int)k,
+ (unsigned long long)(addrs[k]), (int)k, (unsigned long long)size,
+ (unsigned long long)eoa)
+
+ if (H5FD__subfiling_write(_file, type, dxpl_id, addrs[k], size, bufs[k]) != SUCCEED)
HGOTO_ERROR(H5E_VFL, H5E_WRITEERROR, FAIL, "file vector write request failed")
}
}
diff --git a/src/H5FDsubfiling.h b/src/H5FDsubfiling.h
index 93a2b0a..c7ab265 100644
--- a/src/H5FDsubfiling.h
+++ b/src/H5FDsubfiling.h
@@ -20,6 +20,14 @@
#ifndef H5FDsubfiling_H
#define H5FDsubfiling_H
+#if 1 /* JRM */ /* For now, H5FDsubfiling_priv.h needs mercury. Since the code that needs it will \
+ * move to its own header, just hack it for now. \
+ */
+#include "mercury_thread.h"
+#include "mercury_thread_mutex.h"
+#include "mercury_thread_pool.h"
+#endif /* JRM */
+
#include "H5FDsubfiling_priv.h"
#define H5FD_SUBFILING (H5FD_subfiling_init())
@@ -113,6 +121,8 @@
* The full pathname of the user HDF5 file.
*
+WARNING -- this code is commented out
+
#define H5FD_SUBFILING_PATH_MAX 4096
typedef struct config_common_t {
@@ -234,13 +244,20 @@ H5_DLL herr_t H5FD__write_vector(hid_t h5_fid, hssize_t count, haddr_t *addrs, h
H5_DLL int H5FD__truncate(hid_t h5_fid, haddr_t addr);
H5_DLL int H5FD__shutdown_local_ioc(hid_t fid);
H5_DLL void manage_client_logfile(int client_rank, int flag_value);
+#if 0 /* JRM */
H5_DLL int initialize_ioc_threads(void *sf_context);
+#endif /* JRM */
H5_DLL herr_t H5FD__write_vector_internal(hid_t h5_fid, hssize_t count, haddr_t addrs[], size_t sizes[],
const void *bufs[] /* data_in */);
H5_DLL herr_t H5FD__read_vector_internal(hid_t h5_fid, hssize_t count, haddr_t addrs[], size_t sizes[],
void *bufs[] /* data_out */);
+#if 0 /* JRM */
H5_DLL int queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm);
+#else /* JRM */
+H5_DLL int queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm,
+ int counter);
+#endif /* JRM */
H5_DLL int queue_read_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm);
diff --git a/src/H5FDsubfiling_priv.h b/src/H5FDsubfiling_priv.h
index 4753423..4ca63d0 100644
--- a/src/H5FDsubfiling_priv.h
+++ b/src/H5FDsubfiling_priv.h
@@ -213,11 +213,24 @@ typedef struct _info_header { /* Header for a driver info message */
/* Bit 3 SET indicates collectives */
#define COLL_FUNC (0x1 << 3)
+#if 0 /* JRM */ /* original version */
+
#define ACK_PART (0x0acc << 8)
#define DATA_PART (0xd8da << 8)
#define READY (0xfeed << 8)
#define COMPLETED (0xfed1 << 8)
+#else /* JRM */ /* reduce size to make space for counters to disambiguate multiple concurrent requests from \
+ same rank */
+
+#define ACK_PART (0x01 << 8)
+#define DATA_PART (0x02 << 8)
+#define READY (0x04 << 8)
+#define COMPLETED (0x08 << 8)
+
+#endif /* JRM */ /* reduce size to make space for counters to disambiguate multiple concurrent requests from \
+ same rank */
+
#define READ_INDEP (READ_OP)
#define READ_COLL (COLL_FUNC | READ_OP)
#define WRITE_INDEP (WRITE_OP)
@@ -363,6 +376,377 @@ extern int sf_verbose_flag;
extern atomic_int sf_work_pending;
extern atomic_int sf_file_open_count;
extern atomic_int sf_file_close_count;
+extern atomic_int sf_shutdown_flag;
+extern atomic_int sf_io_ops_pending;
+
+#if 1 /* JRM */ /* this belongs in an IOC private header file */
+
+#define H5FD_IOC__COLLECT_STATS TRUE
+
+/****************************************************************************
+ *
+ * IOC I/O Queue management macros:
+ *
+ * The following macros perform the necessary operations on the IOC I/O
+ * Queue, which is implemented as a doubly linked list of instances of
+ * H5FD_ioc_io_queue_entry_t.
+ *
+ * WARNING: q_ptr->q_mutex must be held when these macros are executed..
+ *
+ * At present, the necessary operations are append (insert an entry at the
+ * end of the queue), and delete (remove an entry from the queue).
+ *
+ * At least initially, all sanity checking is done with asserts, as the
+ * the existing I/O concentrator code is not well integrated into the HDF5
+ * error reporting system. This will have to be revisited for a production
+ * version, but it should be suficient for now.
+ *
+ * JRM -- 11/2/21
+ *
+ ****************************************************************************/
+
+/* clang-format off */
+
+#define H5FD_IOC__Q_APPEND(q_ptr, entry_ptr) \
+do { \
+ HDassert(q_ptr); \
+ HDassert((q_ptr)->magic == H5FD_IOC__IO_Q_MAGIC); \
+ HDassert((((q_ptr)->q_len == 0) && ((q_ptr)->q_head == NULL) && ((q_ptr)->q_tail == NULL)) || \
+ (((q_ptr)->q_len > 0) && ((q_ptr)->q_head != NULL) && ((q_ptr)->q_tail != NULL))); \
+ HDassert(entry_ptr); \
+ HDassert((entry_ptr)->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC); \
+ HDassert((entry_ptr)->next == NULL); \
+ HDassert((entry_ptr)->prev == NULL); \
+ HDassert((entry_ptr)->in_progress == FALSE); \
+ \
+ if ( ((q_ptr)->q_head) == NULL ) \
+ { \
+ ((q_ptr)->q_head) = (entry_ptr); \
+ ((q_ptr)->q_tail) = (entry_ptr); \
+ } \
+ else \
+ { \
+ ((q_ptr)->q_tail)->next = (entry_ptr); \
+ (entry_ptr)->prev = ((q_ptr)->q_tail); \
+ ((q_ptr)->q_tail) = (entry_ptr); \
+ } \
+ ((q_ptr)->q_len)++; \
+} while ( FALSE ) /* H5FD_IOC__Q_APPEND() */
+
+#define H5FD_IOC__Q_REMOVE(q_ptr, entry_ptr) \
+do { \
+ HDassert(q_ptr); \
+ HDassert((q_ptr)->magic == H5FD_IOC__IO_Q_MAGIC); \
+ HDassert((((q_ptr)->q_len == 1) && ((q_ptr)->q_head ==((q_ptr)->q_tail)) && ((q_ptr)->q_head == (entry_ptr))) || \
+ (((q_ptr)->q_len > 0) && ((q_ptr)->q_head != NULL) && ((q_ptr)->q_tail != NULL))); \
+ HDassert(entry_ptr); \
+ HDassert((entry_ptr)->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC); \
+ HDassert((((q_ptr)->q_len == 1) && ((entry_ptr)->next == NULL) && ((entry_ptr)->prev == NULL)) || \
+ (((q_ptr)->q_len > 1) && (((entry_ptr)->next != NULL) || ((entry_ptr)->prev != NULL)))); \
+ HDassert((entry_ptr)->in_progress == TRUE); \
+ \
+ { \
+ if ( (((q_ptr)->q_head)) == (entry_ptr) ) \
+ { \
+ (((q_ptr)->q_head)) = (entry_ptr)->next; \
+ if ( (((q_ptr)->q_head)) != NULL ) \
+ (((q_ptr)->q_head))->prev = NULL; \
+ } \
+ else \
+ { \
+ (entry_ptr)->prev->next = (entry_ptr)->next; \
+ } \
+ if (((q_ptr)->q_tail) == (entry_ptr) ) \
+ { \
+ ((q_ptr)->q_tail) = (entry_ptr)->prev; \
+ if ( ((q_ptr)->q_tail) != NULL ) \
+ ((q_ptr)->q_tail)->next = NULL; \
+ } \
+ else \
+ { \
+ (entry_ptr)->next->prev = (entry_ptr)->prev; \
+ } \
+ (entry_ptr)->next = NULL; \
+ (entry_ptr)->prev = NULL; \
+ ((q_ptr)->q_len)--; \
+ } \
+} while ( FALSE ) /* H5FD_IOC__Q_REMOVE() */
+
+/* clang-format on */
+
+/****************************************************************************
+ *
+ * structure H5FD_ioc_io_queue_entry
+ *
+ * magic: Unsigned 32 bit integer always set to H5FD_IOC__IO_Q_ENTRY_MAGIC.
+ * This field is used to validate pointers to instances of
+ * H5FD_ioc_io_queue_entry_t.
+ *
+ * next: Next pointer in the doubly linked list used to implement
+ * the IOC I/O Queue. This field points to the next entry
+ * in the queue, or NULL if there is no next entry.
+ *
+ * prev: Prev pointer in the doubly linked list used to implement
+ * the IOC I/O Queue. This field points to the previous entry
+ * in the queue, or NULL if there is no previous entry.
+ *
+ * in_progress: Boolean flag that must be FALSE when the entry is insterted
+ * into the IOC I/O Queue, and set to TRUE when the entry is dispatched
+ * to the worker thread pool for execution.
+ *
+ * When in_progress is FALS, the enty is said to be pending.
+ *
+ * counter: uint32_t containing a serial number assigned to this IOC
+ * I/O Queue entry. Note that this will roll over on long
+ * computations, and thus is not in general unique.
+ *
+ * The counter fields is used to construct a tag to distinguish
+ * multiple concurrent I/O requests from a give rank, and thus
+ * this should not be a problem as long as there is sufficient
+ * time between roll overs. As only the lower bits of the counter
+ * are used in tag construction, this is more frequent than the
+ * size of the counter field would suggest -- albeit hopefully
+ * still infrequent enough.
+ *
+ * wk_req: Instance of sf_work_request_t. Replace with individual
+ * fields when convenient.
+ *
+ *
+ * Statistics:
+ *
+ * The following fields are only defined if H5FD_IOC__COLLECT_STATS is TRUE.
+ * They are intended to allow collection of basic statistics on the
+ * behaviour of the IOC I/O Queue for purposes of debugging and performance
+ * optimization.
+ *
+ * q_time: uint64_t containing the time the entry was place on the
+ * IOC I/O Queue in usec after the UNIX epoch.
+ *
+ * This value is used to compute the queue wait time, and the
+ * total processing time for the entry.
+ *
+ * dispatch_time: uint64_t containing the time the entry is dispatched in
+ * usec after the UNIX epoch. This field is undefined if the
+ * entry is pending.
+ *
+ * This value is used to compute the execution time for the
+ * entry.
+ *
+ ****************************************************************************/
+
+#define H5FD_IOC__IO_Q_ENTRY_MAGIC 0x1357
+
+typedef struct H5FD_ioc_io_queue_entry {
+
+ uint32_t magic;
+ struct H5FD_ioc_io_queue_entry *next;
+ struct H5FD_ioc_io_queue_entry *prev;
+ hbool_t in_progress;
+ uint32_t counter;
+
+ /* rework these fileds */ /* JRM */
+ sf_work_request_t wk_req;
+ struct hg_thread_work thread_wk;
+
+ /* statistics */
+#if H5FD_IOC__COLLECT_STATS
+
+ uint64_t q_time;
+ uint64_t dispatch_time;
+
+#endif /* H5FD_IOC__COLLECT_STATS */
+
+} H5FD_ioc_io_queue_entry_t;
+
+#if 0 /* JRM */ /* keep this copy for convenience for now */
+typedef struct {
+ /* {Datasize, Offset, FileID} */
+ int64_t header[3]; /* The basic RPC input plus */
+ int tag; /* the supplied OPCODE tag */
+ int source; /* Rank of who sent the message */
+ int subfile_rank; /* The IOC rank */
+ hid_t context_id; /* context to be used to complete */
+ double start_time; /* the request, + time of receipt */
+ /* from which we calc Time(queued) */
+ void *buffer; /* for writes, we keep the buffer */
+ /* around for awhile... */
+ volatile int in_progress; /* Not used! */
+ volatile int serialize; /* worker thread needs to wait while true */
+ volatile int dependents; //* If current work item has dependents */
+ int depend_id; /* work queue index of the dependent */
+} sf_work_request_t;
+
+struct hg_thread_work {
+ hg_thread_func_t func;
+ void * args;
+ HG_QUEUE_ENTRY(hg_thread_work) entry; /* Internal */
+};
+
+#endif /* JRM */
+
+/****************************************************************************
+ *
+ * structure H5FD_ioc_io_queue
+ *
+ * This is a temporary structure -- its fields should be moved to an I/O
+ * concentrator Catchall structure eventualy.
+ *
+ * The fields of this structure support the io queue used to receive and
+ * sequence I/O requests for execution by the worker threads. The rules
+ * for sequencing are as follows:
+ *
+ * 1) Non-overlaping I/O requests must be fed to the worker threads in
+ * the order received, and may execute concurrently
+ *
+ * 2) Overlaping read requests must be fed to the worker threads in
+ * the order received, but may execute concurrently.
+ *
+ * 3) If any pair of I/O requests overlap, and at least one is a write
+ * request, they must be executed in strict arrival order, and the
+ * first must complete before the second starts.
+ *
+ * Due to the strict ordering requirment in rule 3, entries must be
+ * inserted at the tail of the queue in receipt order, and retained on
+ * the queue until completed. Entries in the queue are marked pending
+ * when inserted on the queue, in progress when handed to a worker
+ * thread, and deleted from the queue when completed.
+ *
+ * The dispatch algorith is as follows:
+ *
+ * 1) Set X equal to the element at the head of the queue.
+ *
+ * 2) If X is pending, and there exists no prior element (i.e. between X
+ * and the head of the queue) that intersects with X, goto 5).
+ *
+ * 3) If X is pending, X is a read, and all prior intersecting elements
+ * are reads, goto 5).
+ *
+ * 4) If X is in progress, or if any prior intersecting element is a
+ * write, or if X is a write, set X equal to its successor in the
+ * queue (i.e. the next element further down the queue from the head)
+ * and goto 2) If there is no next element, exit without dispatching
+ * any I/O request.
+ *
+ * 5) If we get to 5, X must be pending. Mark it in progress, and
+ * dispatch it. If the number of in progress entries is less than
+ * the number of worker threads, and X has a successor in the queue,
+ * set X equal to its predecessor, and goto 2). Otherwise exit without
+ * dispatching further I/O requests.
+ *
+ * Note that the above dispatch algorithm doesn't address collective
+ * I/O requests -- this should be OK for now, but it will have to
+ * addressed prior to production release.
+ *
+ * On I/O request completion, worker threads must delete their assigned
+ * I/O requests from the queue, check to see if there are any pending
+ * requests, and trigger the dispatch algorithm if there are.
+ *
+ * The fileds in the structure are discussed individually below.
+ *
+ * magic: Unsigned 32 bit integer always set to H5FD_IOC__IO_Q_MAGIC.
+ * This field is used to validate pointers to instances of
+ * H5C_t.
+ *
+ * q_head: Pointer to the head of the doubly linked list of entries in
+ * the I/O queue.
+ *
+ * This field is NULL if the I/O queue is empty.
+ *
+ * q_tail: Pointer to the tail of the doubly linked list of entries in
+ * the I/O queue.
+ *
+ * This field is NULL if the I/O queue is empty.
+ *
+ * num_pending: Number of I/O request pending on the I/O queue.
+ *
+ * num_in_progress: Number of I/O requests in progress on the I/O queue.
+ *
+ * q_len: Number of I/O requests on the I/O queue. Observe that q_len
+ * must equal (num_pending + num_in_progress).
+ *
+ * req_counter: unsigned 16 bit integer used to provide a "unique" tag for
+ * each I/O request. This value is incremented by 1, and then
+ * passed to the worker thread where its lower bits are incorporated
+ * into the tag used to disambiguate multiple, concurrent I/O
+ * requests from a single rank. The value is 32 bits, as MPI tags
+ * are limited to 32 bits. The value is unsigned as it is expected
+ * to wrap around once its maximum value is reached.
+ *
+ * q_mutex: Mutex used to ensure that only one thread accesses the IOC I/O
+ * Queue at once. This mutex must be held to access of modifiy
+ * all fields of the
+ *
+ *
+ * Statistics:
+ *
+ * The following fields are only defined if H5FD_IOC__COLLECT_STATS is TRUE.
+ * They are intended to allow collection of basic statistics on the
+ * behaviour of the IOC I/O Queue for purposes of debugging and performance
+ * optimization.
+ *
+ * max_q_len: Maximum number of requests residing on the IOC I/O Queue at
+ * any point in time in the current run.
+ *
+ * max_num_pending: Maximum number of pending rquests residing on the IOC
+ * I/O Queue at any point in time in the current run.
+ *
+ * max_num_in_progress: Maximum number of in progress rquests residing on
+ * the IOC I/O Queue at any point in time in the current run.
+ *
+ * ind_read_requests: Number of independent read requests received by the
+ * IOC to date.
+ *
+ * ind_write_requests Number of independent write requests received by the
+ * IOC to date.
+ *
+ * requests_queued: Number of I/O requests received and placed on the IOC
+ * I/O queue.
+ *
+ * requests_dispatched: Number of I/O requests dispatched for execution by
+ * the worker threads.
+ *
+ * requests_completed: Number of I/O requests completed by the worker threads.
+ * Observe that on file close, requests_queued, requests_dispatched,
+ * and requests_completed should be equal.
+ *
+ ****************************************************************************/
+
+#define H5FD_IOC__IO_Q_MAGIC 0x2468
+
+typedef struct H5FD_ioc_io_queue {
+
+ uint32_t magic;
+ H5FD_ioc_io_queue_entry_t *q_head;
+ H5FD_ioc_io_queue_entry_t *q_tail;
+ int32_t num_pending;
+ int32_t num_in_progress;
+ int32_t q_len;
+ uint32_t req_counter;
+ hg_thread_mutex_t q_mutex;
+
+ /* statistics */
+#if H5FD_IOC__COLLECT_STATS
+ int32_t max_q_len;
+ int32_t max_num_pending;
+ int32_t max_num_in_progress;
+ int64_t ind_read_requests;
+ int64_t ind_write_requests;
+ int64_t requests_queued;
+ int64_t requests_dispatched;
+ int64_t requests_completed;
+#endif /* H5FD_IOC__COLLECT_STATS */
+
+} H5FD_ioc_io_queue_t;
+
+H5_DLL void H5FD_ioc_take_down_thread_pool(void);
+
+H5_DLL H5FD_ioc_io_queue_entry_t *H5FD_ioc__alloc_io_q_entry(void);
+H5_DLL void H5FD_ioc__complete_io_q_entry(H5FD_ioc_io_queue_entry_t *entry_ptr);
+H5_DLL void H5FD_ioc__dispatch_elegible_io_q_entries(void);
+H5_DLL void H5FD_ioc__free_io_q_entry(H5FD_ioc_io_queue_entry_t *q_entry_ptr);
+H5_DLL void H5FD_ioc__queue_io_q_entry(sf_work_request_t *wk_req_ptr);
+
+#endif /* JRM */
#ifdef __cplusplus
}
diff --git a/src/mercury/src/util/.deps/.dirstamp b/src/mercury/src/util/.deps/.dirstamp
deleted file mode 100644
index e69de29..0000000
--- a/src/mercury/src/util/.deps/.dirstamp
+++ /dev/null
diff --git a/src/mercury/src/util/.deps/mercury_atomic_queue.Plo b/src/mercury/src/util/.deps/mercury_atomic_queue.Plo
deleted file mode 100644
index 481e5f0..0000000
--- a/src/mercury/src/util/.deps/mercury_atomic_queue.Plo
+++ /dev/null
@@ -1,357 +0,0 @@
-mercury/src/util/mercury_atomic_queue.lo: \
- mercury/src/util/mercury_atomic_queue.c /usr/include/stdc-predef.h \
- mercury/src/util/mercury_atomic_queue.h \
- mercury/src/util/mercury_atomic.h mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- mercury/src/util/mercury_mem.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/immintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/mmintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/xmmintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/mm_malloc.h \
- /usr/include/stdlib.h /usr/include/bits/waitflags.h \
- /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \
- /usr/include/bits/floatn-common.h /usr/include/bits/types/locale_t.h \
- /usr/include/bits/types/__locale_t.h /usr/include/sys/types.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
- /usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sys/select.h /usr/include/bits/select.h \
- /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/struct_timespec.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/alloca.h \
- /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/emmintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/pmmintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/tmmintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/smmintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/popcntintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/wmmintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avxintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx2intrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512fintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512erintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512pfintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512cdintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vlintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512bwintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512dqintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vlbwintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vldqintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512ifmaintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512ifmavlintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmiintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmivlintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx5124fmapsintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx5124vnniwintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vpopcntdqintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmi2intrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmi2vlintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vnniintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vnnivlintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vpopcntdqvlintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512bitalgintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/shaintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/lzcntintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/bmiintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/bmi2intrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/fmaintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/f16cintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/rtmintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/xtestintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/cetintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/gfniintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/vaesintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/vpclmulqdqintrin.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/movdirintrin.h \
- mercury/src/util/mercury_util_error.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h \
- /usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/struct_itimerspec.h /usr/include/bits/setjmp.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \
- /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_atomic_queue.h:
-
-mercury/src/util/mercury_atomic.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-mercury/src/util/mercury_mem.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/immintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/mmintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/xmmintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/mm_malloc.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/bits/floatn.h:
-
-/usr/include/bits/floatn-common.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/sys/types.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sys/select.h:
-
-/usr/include/bits/select.h:
-
-/usr/include/bits/types/sigset_t.h:
-
-/usr/include/bits/types/__sigset_t.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/emmintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/pmmintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/tmmintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/smmintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/popcntintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/wmmintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avxintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx2intrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512fintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512erintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512pfintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512cdintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vlintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512bwintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512dqintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vlbwintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vldqintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512ifmaintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512ifmavlintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmiintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmivlintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx5124fmapsintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx5124vnniwintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vpopcntdqintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmi2intrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmi2vlintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vnniintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vnnivlintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vpopcntdqvlintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512bitalgintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/shaintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/lzcntintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/bmiintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/bmi2intrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/fmaintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/f16cintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/rtmintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/xtestintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/cetintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/gfniintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/vaesintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/vpclmulqdqintrin.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/movdirintrin.h:
-
-mercury/src/util/mercury_util_error.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/setjmp.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h:
diff --git a/src/mercury/src/util/.deps/mercury_dlog.Plo b/src/mercury/src/util/.deps/mercury_dlog.Plo
deleted file mode 100644
index eef468a..0000000
--- a/src/mercury/src/util/.deps/mercury_dlog.Plo
+++ /dev/null
@@ -1,214 +0,0 @@
-mercury/src/util/mercury_dlog.lo: mercury/src/util/mercury_dlog.c \
- /usr/include/stdc-predef.h mercury/src/util/mercury_dlog.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_atomic.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- mercury/src/util/mercury_list.h mercury/src/util/mercury_thread_mutex.h \
- mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \
- /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- mercury/src/util/mercury_time.h /usr/include/stdio.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h /usr/include/inttypes.h /usr/include/stdlib.h \
- /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
- /usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
- /usr/include/sys/types.h /usr/include/sys/select.h \
- /usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \
- /usr/include/bits/types/__sigset_t.h /usr/include/alloca.h \
- /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
- /usr/include/string.h /usr/include/strings.h /usr/include/unistd.h \
- /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
- /usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \
- /usr/include/bits/getopt_core.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_dlog.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-mercury/src/util/mercury_atomic.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-mercury/src/util/mercury_list.h:
-
-mercury/src/util/mercury_thread_mutex.h:
-
-mercury/src/util/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-mercury/src/util/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/usr/include/inttypes.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/bits/floatn.h:
-
-/usr/include/bits/floatn-common.h:
-
-/usr/include/sys/types.h:
-
-/usr/include/sys/select.h:
-
-/usr/include/bits/select.h:
-
-/usr/include/bits/types/sigset_t.h:
-
-/usr/include/bits/types/__sigset_t.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
-
-/usr/include/string.h:
-
-/usr/include/strings.h:
-
-/usr/include/unistd.h:
-
-/usr/include/bits/posix_opt.h:
-
-/usr/include/bits/environments.h:
-
-/usr/include/bits/confname.h:
-
-/usr/include/bits/getopt_posix.h:
-
-/usr/include/bits/getopt_core.h:
diff --git a/src/mercury/src/util/.deps/mercury_event.Plo b/src/mercury/src/util/.deps/mercury_event.Plo
deleted file mode 100644
index 720a823..0000000
--- a/src/mercury/src/util/.deps/mercury_event.Plo
+++ /dev/null
@@ -1,219 +0,0 @@
-mercury/src/util/mercury_event.lo: mercury/src/util/mercury_event.c \
- /usr/include/stdc-predef.h mercury/src/util/mercury_event.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h /usr/include/errno.h \
- /usr/include/bits/errno.h /usr/include/linux/errno.h \
- /usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
- /usr/include/asm-generic/errno-base.h /usr/include/bits/types/error_t.h \
- /usr/include/string.h /usr/include/bits/types/locale_t.h \
- /usr/include/bits/types/__locale_t.h /usr/include/strings.h \
- /usr/include/unistd.h /usr/include/bits/posix_opt.h \
- /usr/include/bits/environments.h /usr/include/bits/confname.h \
- /usr/include/bits/getopt_posix.h /usr/include/bits/getopt_core.h \
- /usr/include/sys/eventfd.h /usr/include/bits/eventfd.h \
- mercury/src/util/mercury_util_error.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h \
- /usr/include/pthread.h /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \
- /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_event.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-/usr/include/errno.h:
-
-/usr/include/bits/errno.h:
-
-/usr/include/linux/errno.h:
-
-/usr/include/asm/errno.h:
-
-/usr/include/asm-generic/errno.h:
-
-/usr/include/asm-generic/errno-base.h:
-
-/usr/include/bits/types/error_t.h:
-
-/usr/include/string.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/strings.h:
-
-/usr/include/unistd.h:
-
-/usr/include/bits/posix_opt.h:
-
-/usr/include/bits/environments.h:
-
-/usr/include/bits/confname.h:
-
-/usr/include/bits/getopt_posix.h:
-
-/usr/include/bits/getopt_core.h:
-
-/usr/include/sys/eventfd.h:
-
-/usr/include/bits/eventfd.h:
-
-mercury/src/util/mercury_util_error.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h:
diff --git a/src/mercury/src/util/.deps/mercury_hash_table.Plo b/src/mercury/src/util/.deps/mercury_hash_table.Plo
deleted file mode 100644
index 2b2bef8..0000000
--- a/src/mercury/src/util/.deps/mercury_hash_table.Plo
+++ /dev/null
@@ -1,125 +0,0 @@
-mercury/src/util/mercury_hash_table.lo: \
- mercury/src/util/mercury_hash_table.c /usr/include/stdc-predef.h \
- mercury/src/util/mercury_hash_table.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h /usr/include/stdlib.h \
- /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
- /usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/sys/types.h /usr/include/bits/types/clock_t.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/timer_t.h /usr/include/endian.h \
- /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
- /usr/include/bits/uintn-identity.h /usr/include/sys/select.h \
- /usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \
- /usr/include/bits/types/__sigset_t.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/struct_timespec.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/alloca.h \
- /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
- /usr/include/string.h /usr/include/strings.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_hash_table.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/bits/floatn.h:
-
-/usr/include/bits/floatn-common.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/sys/types.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sys/select.h:
-
-/usr/include/bits/select.h:
-
-/usr/include/bits/types/sigset_t.h:
-
-/usr/include/bits/types/__sigset_t.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
-
-/usr/include/string.h:
-
-/usr/include/strings.h:
diff --git a/src/mercury/src/util/.deps/mercury_log.Plo b/src/mercury/src/util/.deps/mercury_log.Plo
deleted file mode 100644
index ce22eff..0000000
--- a/src/mercury/src/util/.deps/mercury_log.Plo
+++ /dev/null
@@ -1,204 +0,0 @@
-mercury/src/util/mercury_log.lo: mercury/src/util/mercury_log.c \
- /usr/include/stdc-predef.h mercury/src/util/mercury_log.h \
- mercury/src/util/mercury_dlog.h mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_atomic.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- mercury/src/util/mercury_list.h mercury/src/util/mercury_thread_mutex.h \
- mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \
- /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- mercury/src/util/mercury_time.h /usr/include/stdio.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h mercury/src/util/mercury_queue.h \
- /usr/include/ctype.h /usr/include/stdlib.h /usr/include/bits/waitflags.h \
- /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \
- /usr/include/bits/floatn-common.h /usr/include/sys/types.h \
- /usr/include/sys/select.h /usr/include/bits/select.h \
- /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.h /usr/include/string.h \
- /usr/include/strings.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_log.h:
-
-mercury/src/util/mercury_dlog.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-mercury/src/util/mercury_atomic.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-mercury/src/util/mercury_list.h:
-
-mercury/src/util/mercury_thread_mutex.h:
-
-mercury/src/util/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-mercury/src/util/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-mercury/src/util/mercury_queue.h:
-
-/usr/include/ctype.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/bits/floatn.h:
-
-/usr/include/bits/floatn-common.h:
-
-/usr/include/sys/types.h:
-
-/usr/include/sys/select.h:
-
-/usr/include/bits/select.h:
-
-/usr/include/bits/types/sigset_t.h:
-
-/usr/include/bits/types/__sigset_t.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
-
-/usr/include/string.h:
-
-/usr/include/strings.h:
diff --git a/src/mercury/src/util/.deps/mercury_mem.Plo b/src/mercury/src/util/.deps/mercury_mem.Plo
deleted file mode 100644
index 9b99a9b..0000000
--- a/src/mercury/src/util/.deps/mercury_mem.Plo
+++ /dev/null
@@ -1,276 +0,0 @@
-mercury/src/util/mercury_mem.lo: mercury/src/util/mercury_mem.c \
- /usr/include/stdc-predef.h mercury/src/util/mercury_mem.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_util_error.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h \
- /usr/include/pthread.h /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \
- /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \
- /usr/include/errno.h /usr/include/bits/errno.h \
- /usr/include/linux/errno.h /usr/include/asm/errno.h \
- /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
- /usr/include/bits/types/error_t.h /usr/include/fcntl.h \
- /usr/include/bits/fcntl.h /usr/include/bits/fcntl-linux.h \
- /usr/include/bits/types/struct_iovec.h /usr/include/linux/falloc.h \
- /usr/include/bits/stat.h /usr/include/string.h /usr/include/strings.h \
- /usr/include/sys/mman.h /usr/include/bits/mman.h \
- /usr/include/bits/mman-linux.h /usr/include/bits/mman-shared.h \
- /usr/include/sys/stat.h /usr/include/bits/statx.h \
- /usr/include/sys/types.h /usr/include/sys/select.h \
- /usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \
- /usr/include/bits/types/__sigset_t.h /usr/include/unistd.h \
- /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
- /usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \
- /usr/include/bits/getopt_core.h /usr/include/stdlib.h \
- /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
- /usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_mem.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-mercury/src/util/mercury_util_error.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h:
-
-/usr/include/errno.h:
-
-/usr/include/bits/errno.h:
-
-/usr/include/linux/errno.h:
-
-/usr/include/asm/errno.h:
-
-/usr/include/asm-generic/errno.h:
-
-/usr/include/asm-generic/errno-base.h:
-
-/usr/include/bits/types/error_t.h:
-
-/usr/include/fcntl.h:
-
-/usr/include/bits/fcntl.h:
-
-/usr/include/bits/fcntl-linux.h:
-
-/usr/include/bits/types/struct_iovec.h:
-
-/usr/include/linux/falloc.h:
-
-/usr/include/bits/stat.h:
-
-/usr/include/string.h:
-
-/usr/include/strings.h:
-
-/usr/include/sys/mman.h:
-
-/usr/include/bits/mman.h:
-
-/usr/include/bits/mman-linux.h:
-
-/usr/include/bits/mman-shared.h:
-
-/usr/include/sys/stat.h:
-
-/usr/include/bits/statx.h:
-
-/usr/include/sys/types.h:
-
-/usr/include/sys/select.h:
-
-/usr/include/bits/select.h:
-
-/usr/include/bits/types/sigset_t.h:
-
-/usr/include/bits/types/__sigset_t.h:
-
-/usr/include/unistd.h:
-
-/usr/include/bits/posix_opt.h:
-
-/usr/include/bits/environments.h:
-
-/usr/include/bits/confname.h:
-
-/usr/include/bits/getopt_posix.h:
-
-/usr/include/bits/getopt_core.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/bits/floatn.h:
-
-/usr/include/bits/floatn-common.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
diff --git a/src/mercury/src/util/.deps/mercury_mem_pool.Plo b/src/mercury/src/util/.deps/mercury_mem_pool.Plo
deleted file mode 100644
index 970caa7..0000000
--- a/src/mercury/src/util/.deps/mercury_mem_pool.Plo
+++ /dev/null
@@ -1,228 +0,0 @@
-mercury/src/util/mercury_mem_pool.lo: mercury/src/util/mercury_mem_pool.c \
- /usr/include/stdc-predef.h mercury/src/util/mercury_mem_pool.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_mem.h \
- mercury/src/util/mercury_queue.h \
- mercury/src/util/mercury_thread_condition.h \
- mercury/src/util/mercury_thread_mutex.h \
- mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \
- /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- /usr/include/stdlib.h /usr/include/bits/waitflags.h \
- /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \
- /usr/include/bits/floatn-common.h /usr/include/sys/types.h \
- /usr/include/sys/select.h /usr/include/bits/select.h \
- /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.h mercury/src/util/mercury_thread_spin.h \
- mercury/src/util/mercury_util_error.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \
- /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \
- /usr/include/string.h /usr/include/strings.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_mem_pool.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-mercury/src/util/mercury_mem.h:
-
-mercury/src/util/mercury_queue.h:
-
-mercury/src/util/mercury_thread_condition.h:
-
-mercury/src/util/mercury_thread_mutex.h:
-
-mercury/src/util/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/bits/floatn.h:
-
-/usr/include/bits/floatn-common.h:
-
-/usr/include/sys/types.h:
-
-/usr/include/sys/select.h:
-
-/usr/include/bits/select.h:
-
-/usr/include/bits/types/sigset_t.h:
-
-/usr/include/bits/types/__sigset_t.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
-
-mercury/src/util/mercury_thread_spin.h:
-
-mercury/src/util/mercury_util_error.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h:
-
-/usr/include/string.h:
-
-/usr/include/strings.h:
diff --git a/src/mercury/src/util/.deps/mercury_poll.Plo b/src/mercury/src/util/.deps/mercury_poll.Plo
deleted file mode 100644
index 91ff893..0000000
--- a/src/mercury/src/util/.deps/mercury_poll.Plo
+++ /dev/null
@@ -1,262 +0,0 @@
-mercury/src/util/mercury_poll.lo: mercury/src/util/mercury_poll.c \
- /usr/include/stdc-predef.h mercury/src/util/mercury_poll.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_event.h \
- /usr/include/errno.h /usr/include/bits/errno.h \
- /usr/include/linux/errno.h /usr/include/asm/errno.h \
- /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
- /usr/include/bits/types/error_t.h /usr/include/string.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/strings.h /usr/include/unistd.h \
- /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
- /usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \
- /usr/include/bits/getopt_core.h /usr/include/sys/eventfd.h \
- /usr/include/bits/eventfd.h mercury/src/util/mercury_thread_mutex.h \
- mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \
- /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- mercury/src/util/mercury_util_error.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \
- /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \
- /usr/include/stdlib.h /usr/include/bits/waitflags.h \
- /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \
- /usr/include/bits/floatn-common.h /usr/include/sys/types.h \
- /usr/include/sys/select.h /usr/include/bits/select.h \
- /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.h /usr/include/sys/epoll.h \
- /usr/include/bits/epoll.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_poll.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-mercury/src/util/mercury_event.h:
-
-/usr/include/errno.h:
-
-/usr/include/bits/errno.h:
-
-/usr/include/linux/errno.h:
-
-/usr/include/asm/errno.h:
-
-/usr/include/asm-generic/errno.h:
-
-/usr/include/asm-generic/errno-base.h:
-
-/usr/include/bits/types/error_t.h:
-
-/usr/include/string.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/strings.h:
-
-/usr/include/unistd.h:
-
-/usr/include/bits/posix_opt.h:
-
-/usr/include/bits/environments.h:
-
-/usr/include/bits/confname.h:
-
-/usr/include/bits/getopt_posix.h:
-
-/usr/include/bits/getopt_core.h:
-
-/usr/include/sys/eventfd.h:
-
-/usr/include/bits/eventfd.h:
-
-mercury/src/util/mercury_thread_mutex.h:
-
-mercury/src/util/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-mercury/src/util/mercury_util_error.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/bits/floatn.h:
-
-/usr/include/bits/floatn-common.h:
-
-/usr/include/sys/types.h:
-
-/usr/include/sys/select.h:
-
-/usr/include/bits/select.h:
-
-/usr/include/bits/types/sigset_t.h:
-
-/usr/include/bits/types/__sigset_t.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
-
-/usr/include/sys/epoll.h:
-
-/usr/include/bits/epoll.h:
diff --git a/src/mercury/src/util/.deps/mercury_request.Plo b/src/mercury/src/util/.deps/mercury_request.Plo
deleted file mode 100644
index ed207e4..0000000
--- a/src/mercury/src/util/.deps/mercury_request.Plo
+++ /dev/null
@@ -1,220 +0,0 @@
-mercury/src/util/mercury_request.lo: mercury/src/util/mercury_request.c \
- /usr/include/stdc-predef.h mercury/src/util/mercury_request.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_atomic.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- mercury/src/util/mercury_thread_condition.h \
- mercury/src/util/mercury_thread_mutex.h \
- mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \
- /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- /usr/include/stdlib.h /usr/include/bits/waitflags.h \
- /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \
- /usr/include/bits/floatn-common.h /usr/include/sys/types.h \
- /usr/include/sys/select.h /usr/include/bits/select.h \
- /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.h mercury/src/util/mercury_time.h \
- mercury/src/util/mercury_util_error.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \
- /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_request.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-mercury/src/util/mercury_atomic.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-mercury/src/util/mercury_thread_condition.h:
-
-mercury/src/util/mercury_thread_mutex.h:
-
-mercury/src/util/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/bits/floatn.h:
-
-/usr/include/bits/floatn-common.h:
-
-/usr/include/sys/types.h:
-
-/usr/include/sys/select.h:
-
-/usr/include/bits/select.h:
-
-/usr/include/bits/types/sigset_t.h:
-
-/usr/include/bits/types/__sigset_t.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
-
-mercury/src/util/mercury_time.h:
-
-mercury/src/util/mercury_util_error.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h:
diff --git a/src/mercury/src/util/.deps/mercury_thread.Plo b/src/mercury/src/util/.deps/mercury_thread.Plo
deleted file mode 100644
index b3bfed7..0000000
--- a/src/mercury/src/util/.deps/mercury_thread.Plo
+++ /dev/null
@@ -1,113 +0,0 @@
-mercury/src/util/mercury_thread.lo: mercury/src/util/mercury_thread.c \
- /usr/include/stdc-predef.h mercury/src/util/mercury_thread.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h /usr/include/pthread.h \
- /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_thread.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
diff --git a/src/mercury/src/util/.deps/mercury_thread_condition.Plo b/src/mercury/src/util/.deps/mercury_thread_condition.Plo
deleted file mode 100644
index 779d371..0000000
--- a/src/mercury/src/util/.deps/mercury_thread_condition.Plo
+++ /dev/null
@@ -1,153 +0,0 @@
-mercury/src/util/mercury_thread_condition.lo: \
- mercury/src/util/mercury_thread_condition.c /usr/include/stdc-predef.h \
- mercury/src/util/mercury_thread_condition.h \
- mercury/src/util/mercury_thread_mutex.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h \
- mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \
- /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- /usr/include/stdlib.h /usr/include/bits/waitflags.h \
- /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \
- /usr/include/bits/floatn-common.h /usr/include/sys/types.h \
- /usr/include/sys/select.h /usr/include/bits/select.h \
- /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_thread_condition.h:
-
-mercury/src/util/mercury_thread_mutex.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-mercury/src/util/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/bits/floatn.h:
-
-/usr/include/bits/floatn-common.h:
-
-/usr/include/sys/types.h:
-
-/usr/include/sys/select.h:
-
-/usr/include/bits/select.h:
-
-/usr/include/bits/types/sigset_t.h:
-
-/usr/include/bits/types/__sigset_t.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
diff --git a/src/mercury/src/util/.deps/mercury_thread_mutex.Plo b/src/mercury/src/util/.deps/mercury_thread_mutex.Plo
deleted file mode 100644
index e7439a8..0000000
--- a/src/mercury/src/util/.deps/mercury_thread_mutex.Plo
+++ /dev/null
@@ -1,183 +0,0 @@
-mercury/src/util/mercury_thread_mutex.lo: \
- mercury/src/util/mercury_thread_mutex.c /usr/include/stdc-predef.h \
- mercury/src/util/mercury_thread_mutex.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h \
- mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \
- /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- mercury/src/util/mercury_util_error.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \
- /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \
- /usr/include/string.h /usr/include/strings.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_thread_mutex.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-mercury/src/util/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-mercury/src/util/mercury_util_error.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h:
-
-/usr/include/string.h:
-
-/usr/include/strings.h:
diff --git a/src/mercury/src/util/.deps/mercury_thread_pool.Plo b/src/mercury/src/util/.deps/mercury_thread_pool.Plo
deleted file mode 100644
index 72cae2e..0000000
--- a/src/mercury/src/util/.deps/mercury_thread_pool.Plo
+++ /dev/null
@@ -1,220 +0,0 @@
-mercury/src/util/mercury_thread_pool.lo: \
- mercury/src/util/mercury_thread_pool.c /usr/include/stdc-predef.h \
- mercury/src/util/mercury_thread_pool.h mercury/src/util/mercury_queue.h \
- mercury/src/util/mercury_thread.h mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h /usr/include/pthread.h \
- /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- mercury/src/util/mercury_thread_condition.h \
- mercury/src/util/mercury_thread_mutex.h \
- mercury/src/util/mercury_thread_annotation.h /usr/include/stdlib.h \
- /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
- /usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
- /usr/include/sys/types.h /usr/include/sys/select.h \
- /usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \
- /usr/include/bits/types/__sigset_t.h /usr/include/alloca.h \
- /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
- mercury/src/util/mercury_util_error.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \
- /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_thread_pool.h:
-
-mercury/src/util/mercury_queue.h:
-
-mercury/src/util/mercury_thread.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-mercury/src/util/mercury_thread_condition.h:
-
-mercury/src/util/mercury_thread_mutex.h:
-
-mercury/src/util/mercury_thread_annotation.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/bits/floatn.h:
-
-/usr/include/bits/floatn-common.h:
-
-/usr/include/sys/types.h:
-
-/usr/include/sys/select.h:
-
-/usr/include/bits/select.h:
-
-/usr/include/bits/types/sigset_t.h:
-
-/usr/include/bits/types/__sigset_t.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
-
-mercury/src/util/mercury_util_error.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h:
diff --git a/src/mercury/src/util/.deps/mercury_thread_rwlock.Plo b/src/mercury/src/util/.deps/mercury_thread_rwlock.Plo
deleted file mode 100644
index 7bcb1a0..0000000
--- a/src/mercury/src/util/.deps/mercury_thread_rwlock.Plo
+++ /dev/null
@@ -1,186 +0,0 @@
-mercury/src/util/mercury_thread_rwlock.lo: \
- mercury/src/util/mercury_thread_rwlock.c /usr/include/stdc-predef.h \
- mercury/src/util/mercury_thread_rwlock.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h \
- mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \
- /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- mercury/src/util/mercury_util_error.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \
- /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \
- /usr/include/string.h /usr/include/strings.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_thread_rwlock.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-mercury/src/util/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-mercury/src/util/mercury_util_error.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h:
-
-/usr/include/string.h:
-
-/usr/include/strings.h:
diff --git a/src/mercury/src/util/.deps/mercury_thread_spin.Plo b/src/mercury/src/util/.deps/mercury_thread_spin.Plo
deleted file mode 100644
index 8cf0151..0000000
--- a/src/mercury/src/util/.deps/mercury_thread_spin.Plo
+++ /dev/null
@@ -1,186 +0,0 @@
-mercury/src/util/mercury_thread_spin.lo: \
- mercury/src/util/mercury_thread_spin.c /usr/include/stdc-predef.h \
- mercury/src/util/mercury_thread_spin.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h \
- mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \
- /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- mercury/src/util/mercury_util_error.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \
- /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \
- /usr/include/string.h /usr/include/strings.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_thread_spin.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-mercury/src/util/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-mercury/src/util/mercury_util_error.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h:
-
-/usr/include/string.h:
-
-/usr/include/strings.h:
diff --git a/src/mercury/src/util/.deps/mercury_util.Plo b/src/mercury/src/util/.deps/mercury_util.Plo
deleted file mode 100644
index 0efc265..0000000
--- a/src/mercury/src/util/.deps/mercury_util.Plo
+++ /dev/null
@@ -1,214 +0,0 @@
-mercury/src/util/mercury_util.lo: mercury/src/util/mercury_util.c \
- /usr/include/stdc-predef.h mercury/src/util/mercury_util.h \
- mercury/src/util/mercury_util_config.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/libc-header-start.h \
- /usr/include/features.h /usr/include/sys/cdefs.h \
- /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
- /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
- /usr/include/bits/types.h /usr/include/bits/typesizes.h \
- /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
- /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_util_error.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \
- /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h \
- /usr/include/pthread.h /usr/include/endian.h /usr/include/bits/endian.h \
- /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
- /usr/include/sched.h /usr/include/bits/types/time_t.h \
- /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
- /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
- /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
- /usr/include/bits/types/struct_timeval.h \
- /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
- /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
- /usr/include/bits/types/struct_itimerspec.h \
- /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
- /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
- /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \
- /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \
- /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
- /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
- /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
- /usr/include/bits/types/cookie_io_functions_t.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h \
- /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \
- /usr/include/stdlib.h /usr/include/bits/waitflags.h \
- /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \
- /usr/include/bits/floatn-common.h /usr/include/sys/types.h \
- /usr/include/sys/select.h /usr/include/bits/select.h \
- /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.h /usr/include/string.h \
- /usr/include/strings.h
-
-/usr/include/stdc-predef.h:
-
-mercury/src/util/mercury_util.h:
-
-mercury/src/util/mercury_util_config.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:
-
-/usr/include/stdint.h:
-
-/usr/include/bits/libc-header-start.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/bits/long-double.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-64.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/include/bits/stdint-intn.h:
-
-/usr/include/bits/stdint-uintn.h:
-
-mercury/src/util/mercury_util_error.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h:
-
-/usr/include/pthread.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/bits/byteswap.h:
-
-/usr/include/bits/uintn-identity.h:
-
-/usr/include/sched.h:
-
-/usr/include/bits/types/time_t.h:
-
-/usr/include/bits/types/struct_timespec.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/types/struct_sched_param.h:
-
-/usr/include/bits/cpu-set.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/bits/timex.h:
-
-/usr/include/bits/types/struct_timeval.h:
-
-/usr/include/bits/types/clock_t.h:
-
-/usr/include/bits/types/struct_tm.h:
-
-/usr/include/bits/types/clockid_t.h:
-
-/usr/include/bits/types/timer_t.h:
-
-/usr/include/bits/types/struct_itimerspec.h:
-
-/usr/include/bits/types/locale_t.h:
-
-/usr/include/bits/types/__locale_t.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/thread-shared-types.h:
-
-/usr/include/bits/pthreadtypes-arch.h:
-
-/usr/include/bits/setjmp.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h:
-
-/usr/include/bits/types/__fpos_t.h:
-
-/usr/include/bits/types/__mbstate_t.h:
-
-/usr/include/bits/types/__fpos64_t.h:
-
-/usr/include/bits/types/__FILE.h:
-
-/usr/include/bits/types/FILE.h:
-
-/usr/include/bits/types/struct_FILE.h:
-
-/usr/include/bits/types/cookie_io_functions_t.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/bits/floatn.h:
-
-/usr/include/bits/floatn-common.h:
-
-/usr/include/sys/types.h:
-
-/usr/include/sys/select.h:
-
-/usr/include/bits/select.h:
-
-/usr/include/bits/types/sigset_t.h:
-
-/usr/include/bits/types/__sigset_t.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
-
-/usr/include/string.h:
-
-/usr/include/strings.h:
diff --git a/src/mercury/src/util/.dirstamp b/src/mercury/src/util/.dirstamp
deleted file mode 100644
index e69de29..0000000
--- a/src/mercury/src/util/.dirstamp
+++ /dev/null