aboutsummaryrefslogtreecommitdiff
path: root/nptl/pthread_attr_copy.c
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/pthread_attr_copy.c')
-rw-r--r--nptl/pthread_attr_copy.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/nptl/pthread_attr_copy.c b/nptl/pthread_attr_copy.c
index 77a1a43eeb..eb29557505 100644
--- a/nptl/pthread_attr_copy.c
+++ b/nptl/pthread_attr_copy.c
@@ -29,18 +29,20 @@ __pthread_attr_copy (pthread_attr_t *target, const pthread_attr_t *source)
temp.external = *source;
/* Force new allocation. This function has full ownership of temp. */
- temp.internal.cpuset = NULL;
- temp.internal.cpusetsize = 0;
+ temp.internal.extension = NULL;
int ret = 0;
struct pthread_attr *isource = (struct pthread_attr *) source;
- /* Propagate affinity mask information. */
- if (isource->cpusetsize > 0)
- ret = __pthread_attr_setaffinity_np (&temp.external,
- isource->cpusetsize,
- isource->cpuset);
+ if (isource->extension != NULL)
+ {
+ /* Propagate affinity mask information. */
+ if (isource->extension->cpusetsize > 0)
+ ret = __pthread_attr_setaffinity_np (&temp.external,
+ isource->extension->cpusetsize,
+ isource->extension->cpuset);
+ }
if (ret != 0)
{