Workaround for bug in Solaris udapl library where dat_evd_dequeue does not dequeue DAT_CONNECTION_REQUEST_EVENT.
This commit was SVN r11032.
Этот коммит содержится в:
родитель
9c070dafef
Коммит
fcb932a6d9
@ -11,6 +11,8 @@
|
|||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2006 Sandia National Laboratories. All rights
|
* Copyright (c) 2006 Sandia National Laboratories. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
|
* Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved.
|
||||||
|
*
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -436,6 +438,9 @@ int mca_btl_udapl_component_progress()
|
|||||||
mca_btl_udapl_module_t* btl;
|
mca_btl_udapl_module_t* btl;
|
||||||
static int32_t inprogress = 0;
|
static int32_t inprogress = 0;
|
||||||
DAT_EVENT event;
|
DAT_EVENT event;
|
||||||
|
#if defined(__SVR4) && defined(__sun)
|
||||||
|
DAT_COUNT nmore; /* used by dat_evd_wait, see comment below */
|
||||||
|
#endif
|
||||||
int count = 0;
|
int count = 0;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
@ -607,8 +612,16 @@ int mca_btl_udapl_component_progress()
|
|||||||
|
|
||||||
/* Check connection EVD */
|
/* Check connection EVD */
|
||||||
while(DAT_SUCCESS ==
|
while(DAT_SUCCESS ==
|
||||||
|
#if defined(__SVR4) && defined(__sun)
|
||||||
|
/* There is a bug is Solaris udapl implementation
|
||||||
|
* such that dat_evd_dequeue does not dequeue
|
||||||
|
* DAT_CONNECTION_REQUEST_EVENT. Workaround is to use
|
||||||
|
* wait. This should be removed when fix available.
|
||||||
|
*/
|
||||||
|
dat_evd_wait(btl->udapl_evd_conn, 0, 1, &event, &nmore)) {
|
||||||
|
#else
|
||||||
dat_evd_dequeue(btl->udapl_evd_conn, &event)) {
|
dat_evd_dequeue(btl->udapl_evd_conn, &event)) {
|
||||||
|
#endif
|
||||||
switch(event.event_number) {
|
switch(event.event_number) {
|
||||||
case DAT_CONNECTION_REQUEST_EVENT:
|
case DAT_CONNECTION_REQUEST_EVENT:
|
||||||
/* Accept a new connection */
|
/* Accept a new connection */
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user