diff --git a/src/ocre/components/container_supervisor/cs_sm_impl.c b/src/ocre/components/container_supervisor/cs_sm_impl.c index c462c975..cd66e726 100644 --- a/src/ocre/components/container_supervisor/cs_sm_impl.c +++ b/src/ocre/components/container_supervisor/cs_sm_impl.c @@ -354,7 +354,8 @@ ocre_container_status_t CS_create_container(ocre_container_t *container) } if (container->container_runtime_status != CONTAINER_STATUS_UNKNOWN && - container->container_runtime_status != CONTAINER_STATUS_DESTROYED) { + container->container_runtime_status != CONTAINER_STATUS_DESTROYED && + container->container_runtime_status != CONTAINER_STATUS_RESERVED) { LOG_ERR("Cannot create container again container with ID: %d, already exists", curr_container_ID); return CONTAINER_STATUS_ERROR; } diff --git a/src/ocre/ocre_container_runtime/ocre_container_runtime.c b/src/ocre/ocre_container_runtime/ocre_container_runtime.c index e0847f1d..62a796ca 100644 --- a/src/ocre/ocre_container_runtime/ocre_container_runtime.c +++ b/src/ocre/ocre_container_runtime/ocre_container_runtime.c @@ -54,6 +54,7 @@ ocre_container_status_t ocre_container_runtime_create_container(ocre_cs_ctx *ctx (ctx->containers[i].container_runtime_status == CONTAINER_STATUS_DESTROYED)) { *container_id = i; ctx->containers[i].container_ID = i; + ctx->containers[i].container_runtime_status = CONTAINER_STATUS_RESERVED; validity_flag = true; break; } diff --git a/src/ocre/ocre_container_runtime/ocre_container_runtime.h b/src/ocre/ocre_container_runtime/ocre_container_runtime.h index e3dda8ff..9ecd9e72 100644 --- a/src/ocre/ocre_container_runtime/ocre_container_runtime.h +++ b/src/ocre/ocre_container_runtime/ocre_container_runtime.h @@ -56,6 +56,7 @@ typedef enum { */ typedef enum { CONTAINER_STATUS_UNKNOWN, ///< Status is unknown. + CONTAINER_STATUS_RESERVED, ///< Container slot has been reserved. CONTAINER_STATUS_CREATED, ///< Container has been created. CONTAINER_STATUS_RUNNING, ///< Container is currently running. CONTAINER_STATUS_STOPPED, ///< Container has been stopped.