Skip to content
Snippets Groups Projects
Commit 1ee22e11 authored by Ali Mohammed's avatar Ali Mohammed
Browse files

debugging messages and handle test demand better

parent 02f14e0d
No related branches found
No related tags found
No related merge requests found
...@@ -864,7 +864,7 @@ mstro_status mstro_request_wait(mstro_request request) { ...@@ -864,7 +864,7 @@ mstro_status mstro_request_wait(mstro_request request) {
ERR("Invalid maestro async operation request handle\n"); ERR("Invalid maestro async operation request handle\n");
return MSTRO_INVARG; return MSTRO_INVARG;
} }
DEBUG("Wait for cdo asynchronous operation (%s) to compelte \n", mstro_cdo_state_describe(request->target_state)); DEBUG("Wait for cdo asynchronous operation (%s) to complete \n", mstro_cdo_state_describe(request->target_state));
/*initialize the wait flag value for the request*/ /*initialize the wait flag value for the request*/
request->wait_flag=0; request->wait_flag=0;
...@@ -994,13 +994,20 @@ bool mstro_request_test(mstro_request request) { ...@@ -994,13 +994,20 @@ bool mstro_request_test(mstro_request request) {
} }
/** stage 2 of demand with pm*/ /** stage 2 of demand with pm*/
else if (request->target_state == MSTRO_CDO_STATE_SATISFIED) { else if (request->target_state == MSTRO_CDO_STATE_SATISFIED) {
if ((mstro_cdo_state_get(request->cdo) != MSTRO_CDO_STATE_SATISFIED)) {
DEBUG("Will have to wait until cdo state is advanced to MSTRO_CDO_STATE_SATISFIED \n");
status = false;
} else {
/** This function does not wait or block, it just completes the demand operation*/ /** This function does not wait or block, it just completes the demand operation*/
DEBUG("Async demand SATISFIED ...advancing target state to DEMANDED \n");
mstro_cdo_wait_demand_async_with_pm(request); mstro_cdo_wait_demand_async_with_pm(request);
request->target_state = MSTRO_CDO_STATE_DEMANDED; request->target_state = MSTRO_CDO_STATE_DEMANDED;
/* reduce number of waiters */ /* reduce number of waiters */
mstro_pool_cdo_waiters(request->cdo, -1); mstro_pool_cdo_waiters(request->cdo, -1);
status = true; status = true;
} }
}
return status; return status;
} }
...@@ -1749,6 +1756,7 @@ mstro_cdo_demand_async(mstro_cdo cdo, mstro_request *request) ...@@ -1749,6 +1756,7 @@ mstro_cdo_demand_async(mstro_cdo cdo, mstro_request *request)
if(g_have_pool_manager) { if(g_have_pool_manager) {
/** stage 1 is that the PM statify the request*/ /** stage 1 is that the PM statify the request*/
(*request)->target_state = MSTRO_CDO_STATE_SATISFIED; (*request)->target_state = MSTRO_CDO_STATE_SATISFIED;
DEBUG("request target state is %s \n", mstro_cdo_state_describe((*request)->target_state));
} else { } else {
/** need to check the local pool */ /** need to check the local pool */
(*request)->target_state = MSTRO_CDO_STATE_DEMANDED; (*request)->target_state = MSTRO_CDO_STATE_DEMANDED;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment