selftests: net: tcp_mmap should create detached threads
authorEric Dumazet <edumazet@google.com>
Thu, 14 Nov 2019 16:43:27 +0000 (08:43 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Nov 2019 20:46:08 +0000 (12:46 -0800)
Since we do not plan using pthread_join() in the server do_accept()
loop, we better create detached threads, or risk increasing memory
footprint over time.

Fixes: 192dc405f308 ("selftests: net: add tcp_mmap program")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/tcp_mmap.c

index 31ced79f4f25de89afe95a7214600b2eae42f057..0e73a30f0c2262e62a5ed1e2db6c7c8977bf44fa 100644 (file)
@@ -270,6 +270,11 @@ static void setup_sockaddr(int domain, const char *str_addr,
 
 static void do_accept(int fdlisten)
 {
+       pthread_attr_t attr;
+
+       pthread_attr_init(&attr);
+       pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+
        if (setsockopt(fdlisten, SOL_SOCKET, SO_RCVLOWAT,
                       &chunk_size, sizeof(chunk_size)) == -1) {
                perror("setsockopt SO_RCVLOWAT");
@@ -288,7 +293,7 @@ static void do_accept(int fdlisten)
                        perror("accept");
                        continue;
                }
-               res = pthread_create(&th, NULL, child_thread,
+               res = pthread_create(&th, &attr, child_thread,
                                     (void *)(unsigned long)fd);
                if (res) {
                        errno = res;