Lines Matching refs:search
851 item *search; in lru_pull_tail() local
859 search = tails[id]; in lru_pull_tail()
861 for (; tries > 0 && search != NULL; tries--, search=next_it) { in lru_pull_tail()
863 next_it = search->prev; in lru_pull_tail()
864 if (search->nbytes == 0 && search->nkey == 0 && search->it_flags == 1) { in lru_pull_tail()
869 uint32_t hv = hash(ITEM_key(search), search->nkey); in lru_pull_tail()
875 if (refcount_incr(&search->refcount) != 2) { in lru_pull_tail()
882 search->time + settings.tail_repair_time < current_time) { in lru_pull_tail()
884 search->refcount = 1; in lru_pull_tail()
886 do_item_unlink_nolock(search, hv); in lru_pull_tail()
893 if ((search->exptime != 0 && search->exptime < current_time) in lru_pull_tail()
894 || item_is_flushed(search)) { in lru_pull_tail()
896 if ((search->it_flags & ITEM_FETCHED) == 0) { in lru_pull_tail()
900 do_item_unlink_nolock(search, hv); in lru_pull_tail()
902 do_item_remove(search); in lru_pull_tail()
922 do_item_unlink_q(search); in lru_pull_tail()
923 it = search; in lru_pull_tail()
926 } else if ((search->it_flags & ITEM_ACTIVE) != 0) { in lru_pull_tail()
929 search->it_flags &= ~ITEM_ACTIVE; in lru_pull_tail()
930 do_item_update_nolock(search); in lru_pull_tail()
931 do_item_remove(search); in lru_pull_tail()
935 it = search; in lru_pull_tail()
939 it = search; /* No matter what, we're stopping */ in lru_pull_tail()
946 itemstats[id].evicted_time = current_time - search->time; in lru_pull_tail()
947 if (search->exptime != 0) in lru_pull_tail()
949 if ((search->it_flags & ITEM_FETCHED) == 0) { in lru_pull_tail()
952 LOGGER_LOG(NULL, LOG_EVICTIONS, LOGGER_EVICTION, search); in lru_pull_tail()
953 do_item_unlink_nolock(search, hv); in lru_pull_tail()
958 } else if ((search->it_flags & ITEM_ACTIVE) != 0 in lru_pull_tail()
961 search->it_flags &= ~ITEM_ACTIVE; in lru_pull_tail()
963 do_item_unlink_q(search); in lru_pull_tail()
1298 static void item_crawler_evaluate(item *search, uint32_t hv, int i) { in item_crawler_evaluate() argument
1302 int is_flushed = item_is_flushed(search); in item_crawler_evaluate()
1303 if ((search->exptime != 0 && search->exptime < current_time) in item_crawler_evaluate()
1310 char *key = ITEM_key(search); in item_crawler_evaluate()
1312 search->it_flags, search->slabs_clsid); in item_crawler_evaluate()
1313 for (ii = 0; ii < search->nkey; ++ii) { in item_crawler_evaluate()
1318 if ((search->it_flags & ITEM_FETCHED) == 0 && !is_flushed) { in item_crawler_evaluate()
1321 do_item_unlink_nolock(search, hv); in item_crawler_evaluate()
1322 do_item_remove(search); in item_crawler_evaluate()
1323 assert(search->slabs_clsid == 0); in item_crawler_evaluate()
1326 refcount_decr(&search->refcount); in item_crawler_evaluate()
1327 if (search->exptime == 0) { in item_crawler_evaluate()
1329 } else if (search->exptime - current_time > 3599) { in item_crawler_evaluate()
1332 rel_time_t ttl_remain = search->exptime - current_time; in item_crawler_evaluate()
1352 item *search = NULL; in item_crawler_thread() local
1360 search = crawler_crawl_q((item *)&crawlers[i]); in item_crawler_thread()
1361 if (search == NULL || in item_crawler_thread()
1375 uint32_t hv = hash(ITEM_key(search), search->nkey); in item_crawler_thread()
1384 if (refcount_incr(&search->refcount) != 2) { in item_crawler_thread()
1385 refcount_decr(&search->refcount); in item_crawler_thread()
1396 item_crawler_evaluate(search, hv, i); in item_crawler_thread()