Wait() may stuck forever if other receiver already exited before.
---
src/mds/apitest/mdstipc_api.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/mds/apitest/mdstipc_api.c b/src/mds/apitest/mdstipc_api.c
index 4a97f99e9..1f16a6a93 100644
--- a/src/mds/apitest/mdstipc_api.c
+++ b/src/mds/apitest/mdstipc_api.c
@@ -13612,10 +13612,13 @@ void tet_overload_tp_4(void)
1, fr_svcids);
mds_shutdown();
if (FAIL == 0) {
+ pid_t rc;
int status;
- wait(&status);
- if (WIFEXITED(status) && \
- (WEXITSTATUS(status) != 0)) {
+ do {
+ rc = waitpid(pid2, &status, 0);
+ } while ((rc == -1) && (errno == EINTR));
+ if ((rc == -1) || \
+ (WIFEXITED(status) && (WEXITSTATUS(status)
!= 0))) {
printf("\nThe other receiver FAIL\n");
FAIL = 1;
}
--
2.17.1
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel