void operator()(caller_t &c){
		if (this->only_once){
			c();
			this->only_once = 0;
		}
		stack->push_back(&c);
		this->function(this->user_data);
		stack->pop_back();
	}