Lines Matching refs:pd
231 static int create_thread (struct pthread *pd, const struct pthread_attr *attr, in create_thread() argument
245 pd->stopped_start = *stopped_start; in create_thread()
247 lll_lock (pd->lock, LLL_PRIVATE); in create_thread()
283 TLS_DEFINE_INIT_TP (tp, pd); in create_thread()
288 .pidfd = (uintptr_t) &pd->tid, in create_thread()
289 .parent_tid = (uintptr_t) &pd->tid, in create_thread()
290 .child_tid = (uintptr_t) &pd->tid, in create_thread()
295 int ret = __clone_internal (&args, &start_thread, pd); in create_thread()
311 int res = INTERNAL_SYSCALL_CALL (sched_setaffinity, pd->tid, in create_thread()
323 int res = INTERNAL_SYSCALL_CALL (sched_setscheduler, pd->tid, in create_thread()
324 pd->schedpolicy, &pd->schedparam); in create_thread()
337 struct pthread *pd = arg; in start_thread() local
343 if (pd->stopped_start) in start_thread()
348 lll_lock (pd->lock, LLL_PRIVATE); in start_thread()
353 setup_failed = pd->setup_failed == 1; in start_thread()
355 pd->joinid = NULL; in start_thread()
358 lll_unlock (pd->lock, LLL_PRIVATE); in start_thread()
365 __resp = &pd->res; in start_thread()
372 bool do_rseq = THREAD_GETMEM (pd, flags) & ATTR_FLAG_DO_RSEQ; in start_thread()
373 if (!rseq_register_current_thread (pd, do_rseq) && do_rseq) in start_thread()
383 INTERNAL_SYSCALL_CALL (set_robust_list, &pd->robust_head, in start_thread()
418 if (__glibc_unlikely (atomic_exchange_acq (&pd->setxid_futex, 0) == -2)) in start_thread()
419 futex_wake (&pd->setxid_futex, 1, FUTEX_PRIVATE); in start_thread()
424 THREAD_SETMEM (pd, cleanup_jmp_buf, &unwind_buf); in start_thread()
426 __libc_signal_restore_set (&pd->sigmask); in start_thread()
428 LIBC_PROBE (pthread_start, 3, (pthread_t) pd, pd->start_routine, pd->arg); in start_thread()
432 if (pd->c11) in start_thread()
438 int (*start)(void*) = (int (*) (void*)) pd->start_routine; in start_thread()
439 ret = (void*) (uintptr_t) start (pd->arg); in start_thread()
442 ret = pd->start_routine (pd->arg); in start_thread()
443 THREAD_SETMEM (pd, result, ret); in start_thread()
459 if (__glibc_unlikely (pd->report_events)) in start_thread()
466 | pd->eventbuf.eventmask.event_bits[idx])) != 0) in start_thread()
470 if (pd->nextevent == NULL) in start_thread()
472 pd->eventbuf.eventnum = TD_DEATH; in start_thread()
473 pd->eventbuf.eventdata = pd; in start_thread()
476 pd->nextevent = __nptl_last_event; in start_thread()
478 pd, pd->nextevent)); in start_thread()
490 atomic_bit_set (&pd->cancelhandling, EXITING_BIT); in start_thread()
504 __sigfillset (&pd->sigmask); in start_thread()
505 __sigdelset (&pd->sigmask, SIGSETXID); in start_thread()
506 INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_BLOCK, &pd->sigmask, NULL, in start_thread()
513 __libc_lock_lock (pd->exit_lock); in start_thread()
514 pd->exiting = true; in start_thread()
515 __libc_lock_unlock (pd->exit_lock); in start_thread()
520 void *robust = pd->robust_head.list; in start_thread()
522 __pthread_slist_t *robust = pd->robust_list.__next; in start_thread()
528 && __builtin_expect (robust != (void *) &pd->robust_head, 0)) in start_thread()
546 while (robust != (void *) &pd->robust_head); in start_thread()
550 if (!pd->user_stack) in start_thread()
551 advise_stack_range (pd->stackblock, pd->stackblock_size, (uintptr_t) pd, in start_thread()
552 pd->guardsize); in start_thread()
554 if (__glibc_unlikely (pd->cancelhandling & SETXID_BITMASK)) in start_thread()
563 futex_wait_simple (&pd->setxid_futex, 0, FUTEX_PRIVATE); in start_thread()
564 while (pd->cancelhandling & SETXID_BITMASK); in start_thread()
567 pd->setxid_futex = 0; in start_thread()
571 if (IS_DETACHED (pd)) in start_thread()
573 __nptl_free_tcb (pd); in start_thread()
602 report_thread_creation (struct pthread *pd) in report_thread_creation() argument
612 | pd->eventbuf.eventmask.event_bits[idx])) != 0); in report_thread_creation()
646 struct pthread *pd = NULL; in __pthread_create_2_1() local
647 int err = allocate_stack (iattr, &pd, &stackaddr, &stacksize); in __pthread_create_2_1()
666 pd->header.self = pd; in __pthread_create_2_1()
669 pd->header.tcb = pd; in __pthread_create_2_1()
675 pd->start_routine = start_routine; in __pthread_create_2_1()
676 pd->arg = arg; in __pthread_create_2_1()
677 pd->c11 = c11; in __pthread_create_2_1()
681 pd->flags = ((iattr->flags & ~(ATTR_FLAG_SCHED_SET | ATTR_FLAG_POLICY_SET)) in __pthread_create_2_1()
687 pd->flags |= ATTR_FLAG_DO_RSEQ; in __pthread_create_2_1()
692 pd->joinid = iattr->flags & ATTR_FLAG_DETACHSTATE ? pd : NULL; in __pthread_create_2_1()
695 pd->eventbuf = self->eventbuf; in __pthread_create_2_1()
700 pd->schedpolicy = self->schedpolicy; in __pthread_create_2_1()
701 pd->schedparam = self->schedparam; in __pthread_create_2_1()
705 THREAD_COPY_STACK_GUARD (pd); in __pthread_create_2_1()
710 THREAD_COPY_POINTER_GUARD (pd); in __pthread_create_2_1()
714 tls_setup_tcbhead (pd); in __pthread_create_2_1()
718 CHECK_THREAD_SYSINFO (pd); in __pthread_create_2_1()
728 pd->schedpolicy = iattr->schedpolicy; in __pthread_create_2_1()
729 pd->flags |= ATTR_FLAG_POLICY_SET; in __pthread_create_2_1()
734 pd->schedparam = iattr->schedparam; in __pthread_create_2_1()
735 pd->flags |= ATTR_FLAG_SCHED_SET; in __pthread_create_2_1()
738 if ((pd->flags & (ATTR_FLAG_SCHED_SET | ATTR_FLAG_POLICY_SET)) in __pthread_create_2_1()
740 collect_default_sched (pd); in __pthread_create_2_1()
747 *newthread = (pthread_t) pd; in __pthread_create_2_1()
776 pd->sigmask = iattr->extension->sigmask; in __pthread_create_2_1()
783 pd->sigmask = original_sigmask; in __pthread_create_2_1()
786 __sigdelset (&pd->sigmask, SIGCANCEL); in __pthread_create_2_1()
790 if (__glibc_unlikely (report_thread_creation (pd))) in __pthread_create_2_1()
796 retval = create_thread (pd, iattr, &stopped_start, stackaddr, in __pthread_create_2_1()
806 assert (pd->stopped_start); in __pthread_create_2_1()
812 pd->eventbuf.eventnum = TD_CREATE; in __pthread_create_2_1()
813 pd->eventbuf.eventdata = pd; in __pthread_create_2_1()
817 pd->nextevent = __nptl_last_event; in __pthread_create_2_1()
819 pd, pd->nextevent) in __pthread_create_2_1()
828 retval = create_thread (pd, iattr, &stopped_start, stackaddr, in __pthread_create_2_1()
846 pd->setup_failed = 1; in __pthread_create_2_1()
847 lll_unlock (pd->lock, LLL_PRIVATE); in __pthread_create_2_1()
852 while ((tid = atomic_load_acquire (&pd->tid)) != 0) in __pthread_create_2_1()
853 __futex_abstimed_wait_cancelable64 ((unsigned int *) &pd->tid, in __pthread_create_2_1()
864 __nptl_deallocate_stack (pd); in __pthread_create_2_1()
880 lll_unlock (pd->lock, LLL_PRIVATE); in __pthread_create_2_1()