Lines Matching refs:dc

54 		dispatch_continuation_t dc, pthread_priority_t pp);
1821 dispatch_continuation_t dc; in _dispatch_force_cache_cleanup() local
1822 dc = _dispatch_thread_getspecific(dispatch_cache_key); in _dispatch_force_cache_cleanup()
1823 if (dc) { in _dispatch_force_cache_cleanup()
1825 _dispatch_cache_cleanup(dc); in _dispatch_force_cache_cleanup()
1833 dispatch_continuation_t dc, next_dc = value; in _dispatch_cache_cleanup() local
1835 while ((dc = next_dc)) { in _dispatch_cache_cleanup()
1836 next_dc = dc->do_next; in _dispatch_cache_cleanup()
1837 _dispatch_continuation_free_to_heap(dc); in _dispatch_cache_cleanup()
1846 _dispatch_continuation_free_to_cache_limit(dispatch_continuation_t dc) in _dispatch_continuation_free_to_cache_limit() argument
1848 _dispatch_continuation_free_to_heap(dc); in _dispatch_continuation_free_to_cache_limit()
1850 dc = _dispatch_thread_getspecific(dispatch_cache_key); in _dispatch_continuation_free_to_cache_limit()
1852 if (!dc || (cnt = dc->dc_cache_cnt - in _dispatch_continuation_free_to_cache_limit()
1857 next_dc = dc->do_next; in _dispatch_continuation_free_to_cache_limit()
1858 _dispatch_continuation_free_to_heap(dc); in _dispatch_continuation_free_to_cache_limit()
1859 } while (--cnt && (dc = next_dc)); in _dispatch_continuation_free_to_cache_limit()
1868 dispatch_continuation_t dc = dou._dc; in _dispatch_continuation_redirect() local
1871 if (!DISPATCH_OBJ_IS_VTABLE(dc) && in _dispatch_continuation_redirect()
1872 (long)dc->do_vtable & DISPATCH_OBJ_SYNC_SLOW_BIT) { in _dispatch_continuation_redirect()
1875 (_dispatch_thread_semaphore_t)dc->dc_other); in _dispatch_continuation_redirect()
1878 _dispatch_async_f_redirect(dq, dc, in _dispatch_continuation_redirect()
2237 dispatch_continuation_t dc = _dispatch_continuation_alloc_from_heap(); in _dispatch_barrier_async_f_slow() local
2239 dc->do_vtable = (void *)(DISPATCH_OBJ_ASYNC_BIT | DISPATCH_OBJ_BARRIER_BIT); in _dispatch_barrier_async_f_slow()
2240 dc->dc_func = func; in _dispatch_barrier_async_f_slow()
2241 dc->dc_ctxt = ctxt; in _dispatch_barrier_async_f_slow()
2242 _dispatch_continuation_voucher_set(dc, flags); in _dispatch_barrier_async_f_slow()
2243 _dispatch_continuation_priority_set(dc, pp, flags); in _dispatch_barrier_async_f_slow()
2245 pp = _dispatch_continuation_get_override_priority(dq, dc); in _dispatch_barrier_async_f_slow()
2247 _dispatch_queue_push(dq, dc, pp); in _dispatch_barrier_async_f_slow()
2256 dispatch_continuation_t dc; in _dispatch_barrier_async_f2() local
2258 dc = fastpath(_dispatch_continuation_alloc_cacheonly()); in _dispatch_barrier_async_f2()
2259 if (!dc) { in _dispatch_barrier_async_f2()
2263 dc->do_vtable = (void *)(DISPATCH_OBJ_ASYNC_BIT | DISPATCH_OBJ_BARRIER_BIT); in _dispatch_barrier_async_f2()
2264 dc->dc_func = func; in _dispatch_barrier_async_f2()
2265 dc->dc_ctxt = ctxt; in _dispatch_barrier_async_f2()
2266 _dispatch_continuation_voucher_set(dc, flags); in _dispatch_barrier_async_f2()
2267 _dispatch_continuation_priority_set(dc, pp, flags); in _dispatch_barrier_async_f2()
2269 pp = _dispatch_continuation_get_override_priority(dq, dc); in _dispatch_barrier_async_f2()
2271 _dispatch_queue_push(dq, dc, pp); in _dispatch_barrier_async_f2()
2327 struct dispatch_continuation_s *dc = ctxt; in _dispatch_async_redirect_invoke() local
2328 struct dispatch_continuation_s *other_dc = dc->dc_other; in _dispatch_async_redirect_invoke()
2329 dispatch_queue_t old_dq, dq = dc->dc_data, rq; in _dispatch_async_redirect_invoke()
2353 _dispatch_async_f_redirect2(dispatch_queue_t dq, dispatch_continuation_t dc, in _dispatch_async_f_redirect2() argument
2373 _dispatch_queue_push_wakeup(dq, dc, pp, running == 0); in _dispatch_async_f_redirect2()
2381 dispatch_continuation_t dc = _dispatch_continuation_alloc(); in _dispatch_async_f_redirect() local
2383 dc->do_vtable = (void *)DISPATCH_OBJ_ASYNC_BIT; in _dispatch_async_f_redirect()
2384 dc->dc_func = _dispatch_async_redirect_invoke; in _dispatch_async_f_redirect()
2385 dc->dc_ctxt = dc; in _dispatch_async_f_redirect()
2386 dc->dc_data = dq; in _dispatch_async_f_redirect()
2387 dc->dc_other = other_dc; in _dispatch_async_f_redirect()
2388 dc->dc_priority = 0; in _dispatch_async_f_redirect()
2389 dc->dc_voucher = NULL; in _dispatch_async_f_redirect()
2394 return _dispatch_async_f_redirect2(dq, dc, pp); in _dispatch_async_f_redirect()
2397 _dispatch_queue_push(dq, dc, pp); in _dispatch_async_f_redirect()
2402 _dispatch_async_f2(dispatch_queue_t dq, dispatch_continuation_t dc, in _dispatch_async_f2() argument
2418 return _dispatch_async_f_redirect(dq, dc, pp); in _dispatch_async_f2()
2424 _dispatch_queue_push_wakeup(dq, dc, pp, running == 0); in _dispatch_async_f2()
2433 dispatch_continuation_t dc = _dispatch_continuation_alloc_from_heap(); in _dispatch_async_f_slow() local
2435 dc->do_vtable = (void *)DISPATCH_OBJ_ASYNC_BIT; in _dispatch_async_f_slow()
2436 dc->dc_func = func; in _dispatch_async_f_slow()
2437 dc->dc_ctxt = ctxt; in _dispatch_async_f_slow()
2438 _dispatch_continuation_voucher_set(dc, flags); in _dispatch_async_f_slow()
2439 _dispatch_continuation_priority_set(dc, pp, flags); in _dispatch_async_f_slow()
2441 pp = _dispatch_continuation_get_override_priority(dq, dc); in _dispatch_async_f_slow()
2445 return _dispatch_async_f2(dq, dc, pp); in _dispatch_async_f_slow()
2448 _dispatch_queue_push(dq, dc, pp); in _dispatch_async_f_slow()
2456 dispatch_continuation_t dc; in _dispatch_async_f() local
2463 dc = fastpath(_dispatch_continuation_alloc_cacheonly()); in _dispatch_async_f()
2464 if (!dc) { in _dispatch_async_f()
2468 dc->do_vtable = (void *)DISPATCH_OBJ_ASYNC_BIT; in _dispatch_async_f()
2469 dc->dc_func = func; in _dispatch_async_f()
2470 dc->dc_ctxt = ctxt; in _dispatch_async_f()
2471 _dispatch_continuation_voucher_set(dc, flags); in _dispatch_async_f()
2472 _dispatch_continuation_priority_set(dc, pp, flags); in _dispatch_async_f()
2474 pp = _dispatch_continuation_get_override_priority(dq, dc); in _dispatch_async_f()
2478 return _dispatch_async_f2(dq, dc, pp); in _dispatch_async_f()
2481 _dispatch_queue_push(dq, dc, pp); in _dispatch_async_f()
2521 dispatch_continuation_t dc; in _dispatch_group_async_f() local
2526 dc = _dispatch_continuation_alloc(); in _dispatch_group_async_f()
2530 dc->do_vtable = (void *)(DISPATCH_OBJ_ASYNC_BIT | DISPATCH_OBJ_GROUP_BIT | in _dispatch_group_async_f()
2532 dc->dc_func = func; in _dispatch_group_async_f()
2533 dc->dc_ctxt = ctxt; in _dispatch_group_async_f()
2534 dc->dc_data = dg; in _dispatch_group_async_f()
2535 _dispatch_continuation_voucher_set(dc, flags); in _dispatch_group_async_f()
2536 _dispatch_continuation_priority_set(dc, pp, flags); in _dispatch_group_async_f()
2538 pp = _dispatch_continuation_get_override_priority(dq, dc); in _dispatch_group_async_f()
2542 return _dispatch_async_f2(dq, dc, pp); in _dispatch_group_async_f()
2545 _dispatch_queue_push(dq, dc, pp); in _dispatch_group_async_f()
2599 dispatch_continuation_t dc = ctxt; in _dispatch_sync_recurse_invoke() local
2600 _dispatch_function_invoke(dc->dc_data, dc->dc_ctxt, dc->dc_func); in _dispatch_sync_recurse_invoke()
2608 struct dispatch_continuation_s dc = { in _dispatch_function_recurse() local
2613 _dispatch_sync_f(dq->do_targetq, &dc, _dispatch_sync_recurse_invoke, pp); in _dispatch_function_recurse()
2628 dispatch_continuation_t dc = dou._dc; in _dispatch_barrier_sync_f_pop() local
2631 if (DISPATCH_OBJ_IS_VTABLE(dc) || ((long)dc->do_vtable & in _dispatch_barrier_sync_f_pop()
2636 _dispatch_trace_continuation_pop(dq, dc); in _dispatch_barrier_sync_f_pop()
2639 th = (mach_port_t)dc->dc_data; in _dispatch_barrier_sync_f_pop()
2640 dc = dc->dc_ctxt; in _dispatch_barrier_sync_f_pop()
2641 dq = dc->dc_data; in _dispatch_barrier_sync_f_pop()
2642 sema = (_dispatch_thread_semaphore_t)dc->dc_other; in _dispatch_barrier_sync_f_pop()
2659 dispatch_continuation_t dc = ctxt; in _dispatch_barrier_sync_f_slow_invoke() local
2660 dispatch_queue_t dq = dc->dc_data; in _dispatch_barrier_sync_f_slow_invoke()
2662 sema = (_dispatch_thread_semaphore_t)dc->dc_other; in _dispatch_barrier_sync_f_slow_invoke()
2668 _dispatch_continuation_voucher_adopt(dc); in _dispatch_barrier_sync_f_slow_invoke()
2669 _dispatch_client_callout(dc->dc_ctxt, dc->dc_func); in _dispatch_barrier_sync_f_slow_invoke()
2670 dispatch_atomic_store2o(dc, dc_func, NULL, release); in _dispatch_barrier_sync_f_slow_invoke()
2694 struct dispatch_continuation_s dc = { in _dispatch_barrier_sync_f_slow() local
2707 _dispatch_continuation_voucher_set(&dc, 0); in _dispatch_barrier_sync_f_slow()
2714 .dc_ctxt = &dc, in _dispatch_barrier_sync_f_slow()
2726 if (dc.dc_func == NULL) { in _dispatch_barrier_sync_f_slow()
2939 struct dispatch_continuation_s dc = { in _dispatch_sync_f_slow() local
2949 _dispatch_queue_push_wakeup(dq, &dc, in _dispatch_sync_f_slow()
2950 _dispatch_continuation_get_override_priority(dq, &dc), wakeup); in _dispatch_sync_f_slow()
3106 dispatch_continuation_t dc = ctxt, dc1; in _dispatch_after_timer_callback() local
3107 dispatch_source_t ds = dc->dc_data; in _dispatch_after_timer_callback()
3108 dc1 = _dispatch_continuation_free_cacheonly(dc); in _dispatch_after_timer_callback()
3109 _dispatch_client_callout(dc->dc_ctxt, dc->dc_func); in _dispatch_after_timer_callback()
3146 dispatch_continuation_t dc = _dispatch_continuation_alloc(); in dispatch_after_f() local
3147 dc->do_vtable = (void *)(DISPATCH_OBJ_ASYNC_BIT); in dispatch_after_f()
3148 dc->dc_func = func; in dispatch_after_f()
3149 dc->dc_ctxt = ctxt; in dispatch_after_f()
3150 dc->dc_data = ds; in dispatch_after_f()
3152 dispatch_set_context(ds, dc); in dispatch_after_f()
3485 struct dispatch_object_s *dc; in _dispatch_queue_head() local
3486 _dispatch_wait_until(dc = fastpath(dq->dq_items_head)); in _dispatch_queue_head()
3487 return dc; in _dispatch_queue_head()
3492 _dispatch_queue_next(dispatch_queue_t dq, struct dispatch_object_s *dc) in _dispatch_queue_next() argument
3495 next_dc = fastpath(dc->do_next); in _dispatch_queue_next()
3497 if (!next_dc && !dispatch_atomic_cmpxchg2o(dq, dq_items_tail, dc, NULL, in _dispatch_queue_next()
3499 _dispatch_wait_until(next_dc = fastpath(dc->do_next)); in _dispatch_queue_next()
3510 struct dispatch_object_s *dc, *next_dc; in _dispatch_queue_drain() local
3531 dc = _dispatch_queue_head(dq); in _dispatch_queue_drain()
3544 if (!DISPATCH_OBJ_IS_VTABLE(dc) && in _dispatch_queue_drain()
3545 (long)dc->do_vtable & DISPATCH_OBJ_BARRIER_BIT) { in _dispatch_queue_drain()
3553 next_dc = _dispatch_queue_next(dq, dc); in _dispatch_queue_drain()
3555 _dispatch_continuation_redirect(dq, dc); in _dispatch_queue_drain()
3558 if ((sema = _dispatch_barrier_sync_f_pop(dq, dc, true))) { in _dispatch_queue_drain()
3561 _dispatch_continuation_pop(dc); in _dispatch_queue_drain()
3563 } while ((dc = next_dc)); in _dispatch_queue_drain()
3593 struct dispatch_object_s *dc, *next_dc; in _dispatch_main_queue_drain() local
3594 dc = _dispatch_queue_head(dq); in _dispatch_main_queue_drain()
3596 next_dc = _dispatch_queue_next(dq, dc); in _dispatch_main_queue_drain()
3597 if (dc == dmarker) { in _dispatch_main_queue_drain()
3600 _dispatch_continuation_pop(dc); in _dispatch_main_queue_drain()
3602 } while ((dc = next_dc)); in _dispatch_main_queue_drain()
3631 struct dispatch_object_s *dc, *next_dc; in _dispatch_runloop_queue_drain_one() local
3632 dc = _dispatch_queue_head(dq); in _dispatch_runloop_queue_drain_one()
3633 next_dc = _dispatch_queue_next(dq, dc); in _dispatch_runloop_queue_drain_one()
3634 _dispatch_continuation_pop(dc); in _dispatch_runloop_queue_drain_one()
3652 struct dispatch_object_s *dc; in _dispatch_queue_drain_one_barrier_sync() local
3656 dc = dq->dq_items_head; in _dispatch_queue_drain_one_barrier_sync()
3657 if (slowpath(!dc) || !(sema = _dispatch_barrier_sync_f_pop(dq, dc, false))){ in _dispatch_queue_drain_one_barrier_sync()
3661 (void)_dispatch_queue_next(dq, dc); in _dispatch_queue_drain_one_barrier_sync()
3788 dispatch_continuation_t dc = (dispatch_continuation_t)ctxt; in _dispatch_queue_override_invoke() local
3789 dispatch_queue_t dq = dc->dc_data; in _dispatch_queue_override_invoke()
3800 _dispatch_reset_defaultpriority(dc->dc_priority); in _dispatch_queue_override_invoke()
3872 dispatch_continuation_t dc = _dispatch_continuation_alloc(); in _dispatch_queue_push_override() local
3873 dc->do_vtable = (void *)(DISPATCH_OBJ_ASYNC_BIT | DISPATCH_OBJ_BARRIER_BIT); in _dispatch_queue_push_override()
3874 dc->dc_func = _dispatch_queue_override_invoke; in _dispatch_queue_push_override()
3875 dc->dc_ctxt = dc; in _dispatch_queue_push_override()
3876 dc->dc_priority = tq->dq_priority; in _dispatch_queue_push_override()
3877 dc->dc_voucher = NULL; in _dispatch_queue_push_override()
3878 dc->dc_data = dq; in _dispatch_queue_push_override()
3881 _dispatch_queue_push(rq, dc, 0); in _dispatch_queue_push_override()