Esempio n. 1
0
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;
}
Esempio n. 2
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;
}