• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/libdispatch-442.1.4/src/

Lines Matching refs:act

46 		_voucher_activity_t act);
51 _voucher_activity_t act);
52 static inline void _voucher_activity_release(_voucher_activity_t act);
321 _voucher_activity_t act = _voucher_activity_get(voucher);
322 return _voucher_activity_get_atm_mach_voucher(act);
465 _voucher_activity_t act = NULL;
468 act = _voucher_activity_copy_from_mach_voucher(rkv, va_id);
469 if (!act && _voucher_activity_default) {
473 } else if (act && act->va_id != va_id) {
475 va_base_id = act->va_id;
479 v->v_activity = act;
1268 _voucher_activity_buffer_init(_voucher_activity_t act,
1273 buffer->vabh_activity_id = act->va_id;
1277 buffer->vabh_sequence_no = dispatch_atomic_inc2o(act, va_max_sequence_no,
1282 _voucher_activity_buffer_alloc_slow(_voucher_activity_t act,
1286 _voucher_activity_lock_lock(va_buffers_lock(act)); // TODO: revisit locking
1287 buffer = act->va_current_buffer;
1289 buffer = TAILQ_FIRST(&act->va_buffers);
1291 _voucher_activity_buffer_init(act, buffer, true);
1292 if (buffer != TAILQ_LAST(&act->va_buffers,
1294 TAILQ_REMOVE(&act->va_buffers, buffer, vabh_list);
1295 TAILQ_INSERT_TAIL(&act->va_buffers, buffer, vabh_list);
1298 if (!dispatch_atomic_cmpxchgv2o(act, va_current_buffer, current, buffer,
1301 TAILQ_REMOVE(&act->va_buffers, buffer, vabh_list);
1307 _voucher_activity_lock_unlock(va_buffers_lock(act));
1308 _dispatch_voucher_activity_debug("buffer reuse %p", act, buffer);
1313 _voucher_activity_buffer_alloc(_voucher_activity_t act,
1317 if (act->va_max_sequence_no < act->va_buffer_limit) {
1320 if (!buffer) return _voucher_activity_buffer_alloc_slow(act, current);
1321 _voucher_activity_buffer_init(act, buffer, false);
1322 if (dispatch_atomic_cmpxchgv2o(act, va_current_buffer, current, buffer,
1324 _voucher_activity_lock_lock(va_buffers_lock(act));
1325 TAILQ_INSERT_TAIL(&act->va_buffers, buffer, vabh_list);
1326 _voucher_activity_lock_unlock(va_buffers_lock(act));
1331 _dispatch_voucher_activity_debug("buffer alloc %p", act, buffer);
1349 static void _voucher_activity_dispose(_voucher_activity_t act);
1351 _voucher_activity_t act);
1352 static void _voucher_atm_activity_mark_unused(_voucher_activity_t act);
1356 _voucher_activity_t act);
1357 static void _voucher_atm_activity_remove(_voucher_activity_t act);
1362 _voucher_activity_copy(_voucher_activity_t act)
1364 int use_cnt = dispatch_atomic_inc2o(act, va_use_count, relaxed);
1365 _dispatch_voucher_activity_debug("retain -> %d", act, use_cnt + 1);
1367 _dispatch_voucher_activity_debug("overrelease", act);
1375 _voucher_activity_retain(_voucher_activity_t act)
1377 if (_voucher_activity_copy(act)) {
1378 _dispatch_voucher_activity_debug("invalid resurrection", act);
1381 return act;
1386 _voucher_activity_release(_voucher_activity_t act)
1388 int use_cnt = dispatch_atomic_dec2o(act, va_use_count, relaxed);
1389 _dispatch_voucher_activity_debug("release -> %d", act, use_cnt + 1);
1394 _dispatch_voucher_activity_debug("overrelease", act);
1397 return _voucher_atm_activity_mark_unused(act);
1402 _voucher_activity_atm_retain(_voucher_activity_t act)
1404 int refcnt = dispatch_atomic_inc2o(act, va_refcnt, relaxed);
1405 _dispatch_voucher_activity_debug("atm retain -> %d", act, refcnt + 1);
1407 _dispatch_voucher_activity_debug("atm resurrection", act);
1410 return act;
1415 _voucher_activity_atm_release(_voucher_activity_t act)
1417 int refcnt = dispatch_atomic_dec2o(act, va_refcnt, relaxed);
1418 _dispatch_voucher_activity_debug("atm release -> %d", act, refcnt + 1);
1423 _dispatch_voucher_activity_debug("atm overrelease", act);
1426 return _voucher_activity_dispose(act);
1432 _voucher_activity_t act;
1433 act = v && v->v_activity ? v->v_activity : _voucher_activity_default;
1434 return act;
1441 _voucher_activity_t act;
1442 TAILQ_FOREACH(act, vam_activities(hash), va_list){
1443 if (act->va_id == va_id) break;
1445 return act;
1454 _voucher_activity_t act = _voucher_activity_find(va_id, hash);
1455 if (act) {
1456 resurrect = _voucher_activity_copy(act);
1457 _dispatch_voucher_activity_debug("copy from id 0x%llx", act, va_id);
1460 if (resurrect) return _voucher_atm_activity_mark_used(act);
1461 return act;
1471 _voucher_activity_t act = _voucher_activity_find(va_id, hash);
1472 if (act) {
1473 resurrect = _voucher_activity_copy(act);
1474 _dispatch_voucher_activity_debug("try insert: failed (%p)", act,act_new);
1484 if (resurrect) return _voucher_atm_activity_mark_used(act);
1485 return act;
1489 _voucher_activity_try_remove(_voucher_activity_t act)
1492 voucher_activity_id_t va_id = act->va_id;
1496 _dispatch_voucher_activity_debug("corruption", act);
1499 if ((r = (dispatch_atomic_load2o(act, va_use_count, seq_cst) < 0 &&
1500 _TAILQ_IS_ENQUEUED(act, va_list)))) {
1501 TAILQ_REMOVE(vam_activities(hash), act, va_list);
1502 _TAILQ_MARK_NOT_ENQUEUED(act, va_list);
1503 act->va_list.tqe_next = (void*)~0ull;
1505 _dispatch_voucher_activity_debug("try remove: %s", act, r ? "succeeded" :
1525 _voucher_activity_t act = (_voucher_activity_t)buffer;
1526 act->va_flags = _voucher_activity_trace_flag_buffer_header |
1530 act->vabh_next_tracepoint_idx = sizeof(*act)/sizeof(*vat);
1531 act->va_max_sequence_no = 0;
1532 act->va_id = va_id ? va_id : VATM_ACTID(vatm, 0);
1533 act->va_use_count = 0;
1534 act->va_buffer_limit = _voucher_activity_buffer_limit();
1535 TAILQ_INIT(&act->va_buffers);
1536 act->va_flags2 = _voucher_activity_trace_flag_activity |
1539 act->va_flags3 = act->va_flags2;
1541 act->va_refcnt = 0;
1542 act->va_location = location;
1543 act->va_current_buffer = buffer;
1544 act->va_atm = vatm; // transfer vatm reference
1545 _voucher_activity_lock_init(va_buffers_lock(act));
1546 _TAILQ_MARK_NOT_ENQUEUED(act, va_list);
1547 _TAILQ_MARK_NOT_ENQUEUED(act, va_atm_list);
1548 _TAILQ_MARK_NOT_ENQUEUED(act, va_atm_used_list);
1549 _voucher_activity_t actx = _voucher_activity_try_insert(act);
1551 _voucher_activity_dispose(act);
1552 act = actx;
1554 _voucher_atm_activity_insert(vatm, act);
1556 _dispatch_voucher_activity_debug("create", act);
1557 return act;
1561 _voucher_activity_dispose(_voucher_activity_t act)
1563 _dispatch_voucher_activity_debug("dispose", act);
1564 _voucher_atm_release(act->va_atm);
1565 if (slowpath(_TAILQ_IS_ENQUEUED(act, va_list))) {
1566 _dispatch_voucher_activity_debug("corruption", act);
1569 act->va_list.tqe_next = DISPATCH_OBJECT_LISTLESS;
1570 dispatch_assert(!_TAILQ_IS_ENQUEUED(act, va_atm_list));
1571 dispatch_assert(!_TAILQ_IS_ENQUEUED(act, va_atm_used_list));
1573 TAILQ_FOREACH_SAFE(buffer, &act->va_buffers, vabh_list, tmp) {
1574 _dispatch_voucher_activity_debug("buffer free %p", act, buffer);
1575 TAILQ_REMOVE(&act->va_buffers, buffer, vabh_list);
1578 buffer = (_voucher_activity_buffer_header_t)act;
1583 _voucher_activity_collect(_voucher_activity_t act)
1585 _dispatch_voucher_activity_debug("collect", act);
1586 if (_voucher_activity_try_remove(act)) {
1587 _voucher_atm_activity_remove(act);
1598 _voucher_activity_t act = NULL;
1600 if ((act = _voucher_activity_copy_from_id(va_id))) return act;
1616 act = _voucher_activity_create_with_atm(vatm, va_id, 0, 0, buffer);
1617 _dispatch_voucher_activity_debug("copy from kvoucher[0x%08x]", act, kv);
1618 return act;
1780 _voucher_activity_t act = TAILQ_LAST(vatm_activities(vatm),
1782 atm_subaid32_t subaid = act ? VACTID_SUBID(act->va_id) : 0;
1796 _voucher_activity_t act = TAILQ_FIRST(vatm_used_activities(vatm));
1797 atm_subaid32_t subaid = act ? VACTID_SUBID(act->va_id) : ATM_SUBAID32_MAX;
1807 _voucher_atm_activity_insert(_voucher_atm_t vatm, _voucher_activity_t act)
1810 if (!_TAILQ_IS_ENQUEUED(act, va_atm_list)) {
1811 _voucher_activity_ordered_insert(act, vatm_activities(vatm),
1815 if (!_TAILQ_IS_ENQUEUED(act, va_atm_used_list)) {
1816 _voucher_activity_ordered_insert(act, vatm_used_activities(vatm),
1820 _dispatch_voucher_activity_debug("atm insert", act);
1825 _voucher_atm_activity_remove(_voucher_activity_t act)
1827 _voucher_atm_t vatm = act->va_atm;
1829 _dispatch_voucher_activity_debug("atm remove", act);
1830 if (_TAILQ_IS_ENQUEUED(act, va_atm_used_list)) {
1831 TAILQ_REMOVE(vatm_activities(vatm), act, va_atm_used_list);
1832 _TAILQ_MARK_NOT_ENQUEUED(act, va_atm_used_list);
1835 if (_TAILQ_IS_ENQUEUED(act, va_atm_list)) {
1836 TAILQ_REMOVE(vatm_activities(vatm), act, va_atm_list);
1837 _TAILQ_MARK_NOT_ENQUEUED(act, va_atm_list);
1842 _voucher_activity_atm_release(act);
1848 _voucher_atm_activity_mark_used(_voucher_activity_t act)
1850 _voucher_atm_t vatm = act->va_atm;
1852 if (!_TAILQ_IS_ENQUEUED(act, va_atm_used_list)) {
1853 _voucher_activity_ordered_insert(act, vatm_used_activities(vatm),
1856 _dispatch_voucher_activity_debug("mark used", act);
1859 return act;
1863 _voucher_atm_activity_mark_unused(_voucher_activity_t act)
1866 _voucher_atm_t vatm = act->va_atm;
1868 if (_TAILQ_IS_ENQUEUED(act, va_atm_used_list)) {
1869 _dispatch_voucher_activity_debug("mark unused", act);
1870 TAILQ_REMOVE(&vatm->vatm_used_activities, act, va_atm_used_list);
1871 _TAILQ_MARK_NOT_ENQUEUED(act, va_atm_used_list);
1888 _voucher_activity_t act;
1891 TAILQ_FOREACH(act, vatm_activities(vatm), va_atm_list) {
1892 if (act->va_id >= min_va_id) {
1893 act = NULL;
1896 if (!_TAILQ_IS_ENQUEUED(act, va_atm_used_list)) {
1897 _voucher_activity_atm_retain(act);
1902 if (act) {
1903 _voucher_activity_collect(act);
1904 _voucher_activity_atm_release(act);
1906 } while (act);
1980 _voucher_activity_t act = _voucher_activity_get(_voucher_get());
1981 mach_voucher_t kv = _voucher_activity_get_atm_mach_voucher(act);
1985 mach_atm_subaid_t subaid = VACTID_SUBID(act->va_id);
2189 _voucher_activity_get_atm_mach_voucher(_voucher_activity_t act)
2192 kv = act && act->va_atm ? act->va_atm->vatm_kvoucher : MACH_VOUCHER_NULL;
2285 _voucher_activity_t act = NULL;
2301 act = _voucher_activity_create_with_atm(vatm, va_id, trace_id,
2303 vat = (_voucher_activity_tracepoint_t)act;
2307 if (!act) {
2332 act = _voucher_activity_retain(ov->v_activity);
2337 v->v_activity = act;
2444 _voucher_activity_t act;
2449 act = v->v_activity;
2454 act = _voucher_activity_default;
2456 vab = act->va_current_buffer;
2462 vab = _voucher_activity_buffer_alloc(act, vab);