Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libc/rpc simplify more.



details:   https://anonhg.NetBSD.org/src/rev/c8e2e507a873
branches:  trunk
changeset: 341458:c8e2e507a873
user:      christos <christos%NetBSD.org@localhost>
date:      Sat Nov 07 03:06:32 2015 +0000

description:
simplify more.

diffstat:

 lib/libc/rpc/svc_fdset.c |  65 +++++++++++++++++------------------------------
 1 files changed, 24 insertions(+), 41 deletions(-)

diffs (147 lines):

diff -r 8ef3d49d69b4 -r c8e2e507a873 lib/libc/rpc/svc_fdset.c
--- a/lib/libc/rpc/svc_fdset.c  Sat Nov 07 00:42:04 2015 +0000
+++ b/lib/libc/rpc/svc_fdset.c  Sat Nov 07 03:06:32 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: svc_fdset.c,v 1.5 2015/11/07 00:42:04 christos Exp $   */
+/*     $NetBSD: svc_fdset.c,v 1.6 2015/11/07 03:06:32 christos Exp $   */
 
 /*-
  * Copyright (c) 2015 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: svc_fdset.c,v 1.5 2015/11/07 00:42:04 christos Exp $");
+__RCSID("$NetBSD: svc_fdset.c,v 1.6 2015/11/07 03:06:32 christos Exp $");
 
 
 #include "reentrant.h"
@@ -172,6 +172,9 @@
 {
        struct svc_fdset *fds;
 
+       if (!__isthreaded || fdsetkey == -2)
+               return svc_fdset_resize(fd, &__svc_fdset);
+
        if (fdsetkey == -1)
                thr_keycreate(&fdsetkey, svc_fdset_free);
 
@@ -198,16 +201,6 @@
        return svc_fdset_resize(fd, fds);
 }
 
-static struct svc_fdset *
-svc_fdset_get_internal(int fd)
-{
-       if (!__isthreaded || fdsetkey == -2)
-               return svc_fdset_resize(fd, &__svc_fdset);
-
-       return svc_fdset_alloc(fd);
-}
-
-
 /* allow each thread to have their own copy */
 void
 svc_fdset_init(int flags)
@@ -221,18 +214,20 @@
 svc_fdset_zero(void)
 {
        DPRINTF("zero");
-       struct svc_fdset *fds = svc_fdset_get_internal(0);
+       struct svc_fdset *fds = svc_fdset_alloc(0);
        memset(fds->fdset, 0, fds->fdsize);
-       fds->fdmax = 0;
+       fds->fdmax = -1;
 }
 
 void
 svc_fdset_set(int fd)
 {
-       struct svc_fdset *fds = svc_fdset_get_internal(fd);
+       struct svc_fdset *fds = svc_fdset_alloc(fd);
+
        FD_SET(fd, fds->fdset);
        if (fd > fds->fdmax)
                fds->fdmax = fd;
+
        DPRINTF_FDSET(fds, "%d", fd);
 
        svc_fdset_sanitize(fds);
@@ -241,19 +236,22 @@
 int
 svc_fdset_isset(int fd)
 {
-       struct svc_fdset *fds = svc_fdset_get_internal(fd);
-       svc_fdset_sanitize(fds);
+       struct svc_fdset *fds = svc_fdset_alloc(fd);
+
        DPRINTF_FDSET(fds, "%d", fd);
+
        return FD_ISSET(fd, fds->fdset);
 }
 
 void
 svc_fdset_clr(int fd)
 {
-       struct svc_fdset *fds = svc_fdset_get_internal(fd);
+       struct svc_fdset *fds = svc_fdset_alloc(fd);
+
        FD_CLR(fd, fds->fdset);
+       DPRINTF_FDSET(fds, "%d", fd);
+
        svc_fdset_sanitize(fds);
-       DPRINTF_FDSET(fds, "%d", fd);
 }
 
 fd_set *
@@ -271,43 +269,28 @@
 fd_set *
 svc_fdset_get(void)
 {
-       struct svc_fdset *fds = svc_fdset_get_internal(0);
-       svc_fdset_sanitize(fds);
+       struct svc_fdset *fds = svc_fdset_alloc(0);
 
        DPRINTF_FDSET(fds, "get");
+       svc_fdset_sanitize(fds);
        return fds->fdset;
 }
 
 int *
 svc_fdset_getmax(void)
 {
-       struct svc_fdset *fds;
+       struct svc_fdset *fds = svc_fdset_alloc(0);
 
-       if (!__isthreaded || fdsetkey == -2) {
-               svc_fdset_sanitize(&__svc_fdset);
-               return &__svc_fdset.fdmax;
-       }
-               
-       fds = svc_fdset_alloc(0);
-       if (fds == NULL)
-               return NULL;
+       DPRINTF_FDSET(fds, "getmax");
+       svc_fdset_sanitize(fds);
        return &fds->fdmax;
 }
 
 int
 svc_fdset_getsize(int fd)
 {
-       struct svc_fdset *fds;
+       struct svc_fdset *fds = svc_fdset_alloc(fd);
 
-       if (!__isthreaded || fdsetkey == -2) {
-               if (svc_fdset_resize(fd, &__svc_fdset) == NULL)
-                       return -1;
-               else
-                       return __svc_fdset.fdsize;
-       }
-
-       fds = svc_fdset_alloc(fd);
-       if (fds == NULL)
-               return -1;
+       DPRINTF_FDSET(fds, "getsize");
        return fds->fdsize;
 }



Home | Main Index | Thread Index | Old Index