/* -*-c-*-
*
- * $Id: sel.c,v 1.12 2003/05/18 15:10:29 mdw Exp $
+ * $Id: sel.c,v 1.13 2004/04/08 01:36:13 mdw Exp $
*
* I/O multiplexing support
*
* (c) 1999 Straylight/Edgeware
*/
-/*----- Licensing notice --------------------------------------------------*
+/*----- Licensing notice --------------------------------------------------*
*
* This file is part of the mLib utilities library.
*
* it under the terms of the GNU Library General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
- *
+ *
* mLib is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Library General Public
* License along with mLib; if not, write to the Free
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA.
*/
-/*----- Revision history --------------------------------------------------*
- *
- * $Log: sel.c,v $
- * Revision 1.12 2003/05/18 15:10:29 mdw
- * Remove memory leak.
- *
- * Revision 1.11 2003/05/17 10:34:04 mdw
- * Tidying and bugfixing.
- *
- * Revision 1.10 2001/06/22 19:35:58 mdw
- * Fix a large number of bugs.
- *
- * Revision 1.9 2001/02/03 19:07:08 mdw
- * Ensure that timers set to go off in the past don't case a problem.
- *
- * Revision 1.8 2000/03/23 20:42:08 mdw
- * Rearrange timeout handling to avoid list corruptions.
- *
- * Revision 1.7 1999/12/11 11:12:17 mdw
- * Fix comment formatting error.
- *
- * Revision 1.6 1999/09/26 14:28:11 mdw
- * (sel_select): Almost pointless efficiency tweak.
- *
- * Revision 1.5 1999/08/31 17:42:22 mdw
- * New function `sel_force' to force a descriptor to be `selected'.
- *
- * Revision 1.4 1999/08/19 18:30:26 mdw
- * Implement hooks for foreign select-using systems (currently not well
- * tested).
- *
- * Revision 1.3 1999/05/21 22:13:59 mdw
- * Use new `tv' macros. Fix ordering bug for timeout selectors.
- *
- * Revision 1.2 1999/05/15 10:33:32 mdw
- * Fix copyright notices.
- *
- * Revision 1.1 1999/05/14 21:01:14 mdw
- * Integrated `select' handling bits from the background resolver project.
- *
- */
-
/*----- Header files ------------------------------------------------------*/
#include <assert.h>
t->pend = 0;
/* --- More line noise --- */
-
+
while (*tt && TV_CMP(&(*tt)->tv, <, tv))
tt = &(*tt)->next;
t->next = *tt;
/* --- @sel_fdmerge@ --- *
*
- * Arguments: @fd_set *dest@ = destination FD set
- * @fd_set *fd@ = pointer to set to merge
- * @int maxfd@ = highest numbered descriptor in @fd@ + 1
+ * Arguments: @fd_set *dest@ = destination FD set
+ * @fd_set *fd@ = pointer to set to merge
+ * @int maxfd@ = highest numbered descriptor in @fd@ + 1
*
- * Returns: Actual highest numbered descriptor.
+ * Returns: Actual highest numbered descriptor.
*
- * Use: Merges file descriptor sets, and returns an accurate @maxfd@
- * value.
+ * Use: Merges file descriptor sets, and returns an accurate @maxfd@
+ * value.
*/
int sel_fdmerge(fd_set *dest, fd_set *fd, int maxfd)
}
/* --- Run the @select@ call --- */
-
+
if ((err = select(a.maxfd,
&a.fd[SEL_READ], &a.fd[SEL_WRITE], &a.fd[SEL_EXC],
a.tvp)) < 0) {