author | Michael Gerdts <mike.gerdts@oracle.com> |
Mon, 09 Mar 2015 13:29:15 -0700 | |
changeset 3924 | 6200b874acbb |
parent 2137 | components/pigz/patches/named-threads.patch@b1e25f951af0 |
child 7063 | c478967a99d2 |
permissions | -rw-r--r-- |
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 *); |