int swift_vms_exec( void *W ) { PORTER_PTHREAD *p_porter = (PORTER_PTHREAD *)W; struct swift_task_node *swift_task = &p_porter->task; struct sniff_task_node sniff_task = {}; sniff_task.sfd = swift_task->sfd; sniff_task.type = swift_task->type; sniff_task.origin = swift_task->origin; sniff_task.func = sniff_vms_exec;//fix to use xxxx; sniff_task.last = false;//FIXME sniff_task.stamp = time(NULL); get_cache_data(swift_task->sfd, sniff_task.data, &sniff_task.size); #if 0 sniff_task.thread_id = ((PARTER_PTHREAD *)p_porter->mount)->thread_id; sniff_one_task_hit( (PARTER_PTHREAD *)p_porter->mount, &sniff_task ); p_porter->mount = ((PARTER_PTHREAD *)p_porter->mount)->next; #else PARTER_PTHREAD *p_parter = get_idle_thread( (PARTER_PTHREAD *)p_porter->mount ); sniff_task.thread_id = p_parter->thread_id; sniff_one_task_hit( p_parter, &sniff_task ); p_porter->mount = p_parter->next; #endif return 0; }
PosibErr<void> setup(CachePtr<Data> & res, GlobalCache<Data> * cache, typename Data::CacheConfig * config, const typename Data::CacheKey & key) { PosibErr<Data *> pe = get_cache_data(cache, config, key); if (pe.has_err()) return pe; res.reset(pe.data); return no_err; }