diff --git a/examples/local_pool_op.c b/examples/local_pool_op.c index 72a099eaf368ae08e551486cd1d44819a55736ad..bbb3eab4fdf329964aa70ccdb38d42aec846cd30 100644 --- a/examples/local_pool_op.c +++ b/examples/local_pool_op.c @@ -123,7 +123,7 @@ #define __STDC_FORMAT_MACROS #include <inttypes.h> - +#include <string.h> /* simplify logging */ #define DEBUG(...) LOG_DEBUG(MSTRO_LOG_MODULE_USER,__VA_ARGS__) @@ -238,7 +238,7 @@ wait_for_announcement(struct cdo_announcement *announcement) } s = mstro_cdo_attribute_set(announcement_cdo, MSTRO_ATTR_CORE_CDO_RAW_PTR, - announcement); + announcement, false); if(s!=MSTRO_OK) { ERR("Failed to set raw-ptr attribute on announcement CDO\n"); abort(); @@ -287,7 +287,7 @@ do_announce(struct cdo_announcement *announcement, mstro_cdo *result) } s = mstro_cdo_attribute_set(announcement_cdo, MSTRO_ATTR_CORE_CDO_RAW_PTR, - announcement); + announcement, false); if(s!=MSTRO_OK) { ERR("Failed to set raw-ptr attribute on announcement CDO\n"); @@ -451,24 +451,22 @@ archiver_flush_to_disk(const char *name, mmbArray *a) abort(); } - size_t nt; - stat = mmb_tile_iterator_count(it, &nt); - if(stat != MMB_OK) { - ERR("Failed to get tile iterator count\n"); - abort(); - } - stat = mmb_tile_iterator_first(it); - if(stat != MMB_OK) { - ERR("Failed to move tile iterator to first\n"); - abort(); - } + mmbDimensions *tiling_dims = NULL; + stat = mmb_tiling_dimensions(a, &tiling_dims); + + FILE *dst = fopen((const char*)name, "w"); if(dst==NULL) { ERR("Failed to open %s for writing\n", name); abort(); } - for(size_t i = 0; i < nt; i++){ - mmbArrayTile* tile = it->tile; + for(size_t i = 0; i < tiling_dims->d[0]; i++){ + mmbArrayTile* tile = NULL; + stat = mmb_tile_at_1d(a, i, &tile); + if(stat != MMB_OK) { + ERR("Failed to obtain tile %zu: %d\n", i, stat); + abort(); + } size_t count = fwrite(&MMB_IDX_1D(tile, tile->lower[0], char), 1, tile->upper[0]-tile->lower[0], @@ -477,19 +475,16 @@ archiver_flush_to_disk(const char *name, mmbArray *a) ERR("Incomplete write on tile %d of %s\n", i, name); abort(); } - stat = mmb_tile_iterator_next(it); - if(stat != MMB_OK) { - ERR("Failed to increment tile iterator\n"); - abort(); - } } if(0!=fclose(dst)) { ERR("Failed to close %s after writing\n", name); abort(); } - stat = mmb_tile_iterator_destroy(it); + + // destroy tiling dim info: + stat = mmb_dimensions_destroy(tiling_dims); if(stat != MMB_OK) { - ERR("Failed to free tile iterator\n"); + ERR("Failed to destroy tiling dimension info\\n"); abort(); } @@ -551,10 +546,10 @@ archiver_thread_fun(void *closure) } s = mstro_cdo_attribute_set(incoming[i], MSTRO_ATTR_CORE_CDO_RAW_PTR, - incoming_buffers[i]); + incoming_buffers[i], false); s |= mstro_cdo_attribute_set(incoming[i], MSTRO_ATTR_CORE_CDO_SCOPE_LOCAL_SIZE, - &announcement->cdo_size); + &announcement->cdo_size, true); // INFO("archiver cdo %d incoming buffer %p\n", i, incoming_buffers[i]); if(s!=MSTRO_OK) { @@ -672,10 +667,10 @@ producer_thread_fun(void *closure) s = mstro_cdo_attribute_set(outgoing[i], MSTRO_ATTR_CORE_CDO_RAW_PTR, - outgoing_buffers[i]); + outgoing_buffers[i], false); s |= mstro_cdo_attribute_set(outgoing[i], MSTRO_ATTR_CORE_CDO_SCOPE_LOCAL_SIZE, - &announcement->cdo_size); + &announcement->cdo_size, true); if(s!=MSTRO_OK) { ERR("Failed to add outgoing buffer to CDO %s\n", @@ -804,10 +799,10 @@ consumer_thread_fun(void *closure) } s = mstro_cdo_attribute_set(incoming[i], MSTRO_ATTR_CORE_CDO_RAW_PTR, - incoming_buffers[i]); + incoming_buffers[i], false); s |= mstro_cdo_attribute_set(incoming[i], MSTRO_ATTR_CORE_CDO_SCOPE_LOCAL_SIZE, - &announcement->cdo_size); + &announcement->cdo_size, true); // INFO("consumer cdo %d incoming buffer %p\n", i, incoming_buffers[i]); if(s!=MSTRO_OK) {