From: Anders W. <and...@er...> - 2013-10-31 13:25:08
|
osaf/libs/agents/saf/mqa/mqa_init.c | 13 +++---------- 1 files changed, 3 insertions(+), 10 deletions(-) The select() function cannot handle file descriptors larger than 1023. To avoid this limitation, we replace all usages of select() with poll(). diff --git a/osaf/libs/agents/saf/mqa/mqa_init.c b/osaf/libs/agents/saf/mqa/mqa_init.c --- a/osaf/libs/agents/saf/mqa/mqa_init.c +++ b/osaf/libs/agents/saf/mqa/mqa_init.c @@ -31,6 +31,7 @@ #include "mqa.h" #include <pthread.h> #include "osaf_utility.h" +#include "osaf_poll.h" /* global cb handle */ uint32_t gl_mqa_hdl = 0; @@ -104,8 +105,6 @@ uint32_t mqa_lib_req(NCS_LIB_REQ_INFO *r **********************************************************************/ static void mqa_sync_with_mqd(MQA_CB *cb) { - NCS_SEL_OBJ_SET set; - uint32_t timeout = 3000; TRACE_ENTER(); m_NCS_LOCK(&cb->mqd_sync_lock, NCS_LOCK_WRITE); @@ -121,9 +120,7 @@ static void mqa_sync_with_mqd(MQA_CB *cb m_NCS_UNLOCK(&cb->mqd_sync_lock, NCS_LOCK_WRITE); /* Await indication from MDS saying MQND is up */ - m_NCS_SEL_OBJ_ZERO(&set); - m_NCS_SEL_OBJ_SET(cb->mqd_sync_sel, &set); - m_NCS_SEL_OBJ_SELECT(cb->mqd_sync_sel, &set, 0, 0, &timeout); + osaf_poll_one_fd(m_GET_FD_FROM_SEL_OBJ(cb->mqd_sync_sel), 30000); /* Destroy the sync - object */ m_NCS_LOCK(&cb->mqd_sync_lock, NCS_LOCK_WRITE); @@ -145,8 +142,6 @@ static void mqa_sync_with_mqd(MQA_CB *cb **********************************************************************/ static void mqa_sync_with_mqnd(MQA_CB *cb) { - NCS_SEL_OBJ_SET set; - uint32_t timeout = 3000; TRACE_ENTER(); m_NCS_LOCK(&cb->mqnd_sync_lock, NCS_LOCK_WRITE); @@ -162,9 +157,7 @@ static void mqa_sync_with_mqnd(MQA_CB *c m_NCS_UNLOCK(&cb->mqnd_sync_lock, NCS_LOCK_WRITE); /* Await indication from MDS saying MQND is up */ - m_NCS_SEL_OBJ_ZERO(&set); - m_NCS_SEL_OBJ_SET(cb->mqnd_sync_sel, &set); - m_NCS_SEL_OBJ_SELECT(cb->mqnd_sync_sel, &set, 0, 0, &timeout); + osaf_poll_one_fd(m_GET_FD_FROM_SEL_OBJ(cb->mqnd_sync_sel), 30000); /* Destroy the sync - object */ m_NCS_LOCK(&cb->mqnd_sync_lock, NCS_LOCK_WRITE); |