Skip to content

Commit

Permalink
Update group ID handling with cleanups.
Browse files Browse the repository at this point in the history
Signed-off-by: Samuel K. Gutierrez <[email protected]>
  • Loading branch information
samuelkgutierrez committed Jun 17, 2024
1 parent 0ef5e2c commit 7a21e51
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 62 deletions.
1 change: 0 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ add_library(
qvi-rmi.cc
qvi-context.cc
qvi-task.cc
qvi-group.cc
qvi-map.cc
qvi-scope.cc
qvi-bind.cc
Expand Down
45 changes: 0 additions & 45 deletions src/qvi-group.cc

This file was deleted.

24 changes: 16 additions & 8 deletions src/qvi-group.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,17 +79,25 @@ struct qvi_group_s {
int root,
qvi_bbuff_t **rxbuff
) = 0;
/** Returns a unique group ID after each call. */
static int
next_id(
qvi_group_id_t *gid
) {
// Global group ID. Note that we pad its initial value so that other
// infrastructure (e.g., QVI_MPI_GROUP_INTRINSIC_END) will never
// equal or exceed this value.
static std::atomic<qvi_group_id_t> group_id(64);
if (group_id == UINT64_MAX) {
qvi_log_error("Group ID space exhausted");
return QV_ERR_OOR;
}
*gid = group_id++;
return QV_SUCCESS;
}
};
typedef struct qvi_group_s qvi_group_t;

/**
*
*/
int
qvi_group_next_id(
qvi_group_id_t *gid
);

#endif

/*
Expand Down
2 changes: 1 addition & 1 deletion src/qvi-mpi.cc
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ next_group_tab_id(
qvi_mpi_t *,
qvi_mpi_group_id_t *gid
) {
return qvi_group_next_id(gid);
return qvi_group_t::next_id(gid);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/qvi-process.cc
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ next_group_tab_id(
qvi_process_t *,
qvi_process_group_id_t *gid
) {
return qvi_group_next_id(gid);
return qvi_group_t::next_id(gid);
}

int
Expand Down
11 changes: 6 additions & 5 deletions src/qvi-rmi.cc
Original file line number Diff line number Diff line change
Expand Up @@ -734,10 +734,11 @@ int
qvi_rmi_server_new(
qvi_rmi_server_t **server
) {
int rc = QV_SUCCESS;
cstr_t ers = nullptr;

qvi_rmi_server_t *iserver = new qvi_rmi_server_t();
qvi_rmi_server_t *iserver = nullptr;
int rc = qvi_new_rc(&iserver);
if (rc != QV_SUCCESS) goto out;

iserver->zctx = zmq_ctx_new();
if (!iserver->zctx) {
Expand Down Expand Up @@ -894,11 +895,11 @@ int
qvi_rmi_client_new(
qvi_rmi_client_t **client
) {
int rc = QV_SUCCESS;
cstr_t ers = nullptr;

qvi_rmi_client_t *icli = new qvi_rmi_client_t();

qvi_rmi_client_t *icli = nullptr;
int rc = qvi_new_rc(&icli);
if (rc != QV_SUCCESS) goto out;
// Remember clients own the hwloc data, unlike the server.
rc = qvi_hwloc_new(&icli->config.hwloc);
if (rc != QV_SUCCESS) {
Expand Down
2 changes: 1 addition & 1 deletion src/qvi-thread.cc
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ next_group_tab_id(
qvi_thread_group_id_t *gid
) {
QVI_UNUSED(th);
return qvi_group_next_id(gid);
return qvi_group_t::next_id(gid);
}

/**
Expand Down

0 comments on commit 7a21e51

Please sign in to comment.