components/pigz/patches/named-threads.patch
author Michael Gerdts <mike.gerdts@oracle.com>
Thu, 21 Aug 2014 15:36:47 -0700
changeset 2137 b1e25f951af0
permissions -rw-r--r--
19612384 pigz needs parallel uncompress
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2137
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
     1
# HG changeset patch
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
     2
# User Michael Gerdts <[email protected]>
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
     3
# Date 1412623353 25200
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
     4
#      Mon Oct 06 12:22:33 2014 -0700
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
     5
# Node ID 0293c398eda727bf812a867600a25b7831928db7
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
     6
# Parent  b63f212d891d9cffbc8f4a0e2293532fe44aaa16
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
     7
name threads to improve observability - developed by Oracle
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
     8
Not submitted upstream: Uses feature first present in Solaris 12
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
     9
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    10
diff -r b63f212d891d -r 0293c398eda7 yarn.c
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    11
--- a/yarn.c
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    12
+++ b/yarn.c
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    13
@@ -258,7 +258,12 @@
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    14
 
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    15
 /* not all POSIX implementations create threads as joinable by default, so that
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    16
    is made explicit here */
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    17
+#ifdef HAVE_PTHREAD_SETNAME_NP
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    18
+#undef launch
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    19
+thread *launch(const char *probename, void (*probe)(void *), void *payload)
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    20
+#else
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    21
 thread *launch(void (*probe)(void *), void *payload)
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    22
+#endif
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    23
 {
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    24
     int ret;
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    25
     thread *th;
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    26
@@ -284,7 +289,9 @@
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    27
         (ret = pthread_create(&(th->id), &attr, ignition, capsule)) ||
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    28
         (ret = pthread_attr_destroy(&attr)))
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    29
         fail(ret);
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    30
-
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    31
+#ifdef HAVE_PTHREAD_SETNAME_NP
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    32
+    (void)pthread_setname_np(th->id, probename);
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    33
+#endif
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    34
     /* put the thread in the threads list for join_all() */
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    35
     th->done = 0;
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    36
     th->next = threads;
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    37
diff -r b63f212d891d -r 0293c398eda7 yarn.h
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    38
--- a/yarn.h
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    39
+++ b/yarn.h
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    40
@@ -115,7 +115,12 @@
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    41
 void yarn_mem(void *(*)(size_t), void (*)(void *));
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    42
 
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    43
 typedef struct thread_s thread;
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    44
+#ifdef HAVE_PTHREAD_SETNAME_NP
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    45
+thread *launch(const char *, void (*)(void *), void *);
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    46
+#define launch(p, a) launch(#p, p, a)
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    47
+#else
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    48
 thread *launch(void (*)(void *), void *);
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    49
+#endif
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    50
 void join(thread *);
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    51
 int join_all(void);
b1e25f951af0 19612384 pigz needs parallel uncompress
Michael Gerdts <mike.gerdts@oracle.com>
parents:
diff changeset
    52
 void destruct(thread *);