bail out if select returns errors besides EINTR

This commit is contained in:
Jeff Hill
1999-08-12 20:46:29 +00:00
parent 098b24055e
commit f4a7751dc7
2 changed files with 74 additions and 82 deletions

View File

@@ -1,39 +1,37 @@
/*
* $Id$
*
* File descriptor management C++ class library
* (for multiplexing IO in a single threaded environment)
*
* Author Jeffrey O. Hill
* johill@lanl.gov
* 505 665 1831
*
* Experimental Physics and Industrial Control System (EPICS)
*
* Copyright 1991, the Regents of the University of California,
* and the University of Chicago Board of Governors.
*
* This software was produced under U.S. Government contracts:
* (W-7405-ENG-36) at the Los Alamos National Laboratory,
* and (W-31-109-ENG-38) at Argonne National Laboratory.
*
* Initial development by:
* The Controls and Automation Group (AT-8)
* Ground Test Accelerator
* Accelerator Technology Division
* Los Alamos National Laboratory
*
* Co-developed with
* The Controls and Computing Group
* Accelerator Systems Division
* Advanced Photon Source
* Argonne National Laboratory
*
*
*
*/
//
// $Id$
//
// File descriptor management C++ class library
// (for multiplexing IO in a single threaded environment)
//
// Author Jeffrey O. Hill
// johill@lanl.gov
// 505 665 1831
//
// Experimental Physics and Industrial Control System (EPICS)
//
// Copyright 1991, the Regents of the University of California,
// and the University of Chicago Board of Governors.
//
// This software was produced under U.S. Government contracts:
// (W-7405-ENG-36) at the Los Alamos National Laboratory,
// and (W-31-109-ENG-38) at Argonne National Laboratory.
//
// Initial development by:
// The Controls and Automation Group (AT-8)
// Ground Test Accelerator
// Accelerator Technology Division
// Los Alamos National Laboratory
//
// Co-developed with
// The Controls and Computing Group
// Accelerator Systems Division
// Advanced Photon Source
// Argonne National Laboratory
//
//
//
//
//
// NOTES:
@@ -193,16 +191,14 @@ epicsShareFunc void fdManager::process (double delay)
return;
}
else if (status<0) {
if (SOCKERRNO == SOCK_EINTR) {
this->processInProg = 0;
return;
}
else {
if (SOCKERRNO != SOCK_EINTR) {
fprintf(stderr,
"fdManager: select failed because errno=%d=\"%s\"\n",
SOCKERRNO, SOCKERRSTR);
}
}
this->processInProg = 0;
return;
}
//
// Look for activity