您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ tevent_add_timer函数代码示例

51自学网 2021-06-03 08:46:42
  C++
这篇教程C++ tevent_add_timer函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中tevent_add_timer函数的典型用法代码示例。如果您正苦于以下问题:C++ tevent_add_timer函数的具体用法?C++ tevent_add_timer怎么用?C++ tevent_add_timer使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了tevent_add_timer函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: aio_linux_housekeeping

static void aio_linux_housekeeping(struct tevent_context *event_ctx,                                        struct tevent_timer *te,                                        struct timeval now,                                        void *private_data){	/* Remove this timed event handler. */	TALLOC_FREE(te);	if ((num_busy != 0) || used) {		used = false;		/* Still busy. Look again in 30 seconds. */		(void)tevent_add_timer(event_ctx,					NULL,					timeval_current_ofs(30, 0),					aio_linux_housekeeping,					NULL);		return;	}	/* No activity for 30 seconds. Close out kernel resources. */	io_queue_release(io_ctx);	memset(&io_ctx, '/0', sizeof(io_ctx));	if (event_fd != -1) {		close(event_fd);		event_fd = -1;	}	TALLOC_FREE(aio_read_event);}
开发者ID:Distrotech,项目名称:samba,代码行数:31,


示例2: switch_sigint_enabled

void switch_sigint_enabled(struct tevent_context *ev,                           struct tevent_timer *te,                           struct timeval t,                           void *private_data){    struct timeval tv;    struct tevent_timer *event_timer = NULL;    struct main_context *main_ctx = talloc_get_type(private_data,                                    struct main_context);    if (main_ctx->is_sigint_enabled) {        main_ctx->is_sigint_enabled = 0;        DEBUG("SIGINT disabled");    } else {        main_ctx->is_sigint_enabled = 1;        DEBUG("SIGINT enabled");    }    tv = tevent_timeval_current_ofs(SIGINT_SWITCH_TIMEOUT, 0);    event_timer = tevent_add_timer(main_ctx->event_ctx, main_ctx->event_ctx, tv,                                   switch_sigint_enabled, main_ctx);    if (event_timer == NULL) {        DEBUG("tevent_add_signal() failed");    }}
开发者ID:pavka,项目名称:thesis,代码行数:25,


示例3: ctdb_mutex_rados_timer_cb

static void ctdb_mutex_rados_timer_cb(struct tevent_context *ev,				      struct tevent_timer *te,				      struct timeval current_time,				      void *private_data){	struct ctdb_mutex_rados_state *cmr_state = private_data;	int ret;	if (!cmr_state->holding_mutex) {		fprintf(stderr, "Timer callback invoked without mutex!/n");		ret = -EINVAL;		goto err_ctx_cleanup;	}	if ((kill(cmr_state->ppid, 0) == 0) || (errno != ESRCH)) {		/* parent still around, keep waiting */		cmr_state->timer_ev = tevent_add_timer(cmr_state->ev, cmr_state,					       tevent_timeval_current_ofs(5, 0),						      ctdb_mutex_rados_timer_cb,						       cmr_state);		if (cmr_state->timer_ev == NULL) {			fprintf(stderr, "Failed to create timer event/n");			/* rely on signal cb */		}		return;	}	/* parent ended, drop lock and exit */	ret = ctdb_mutex_rados_unlock(cmr_state->ioctx, cmr_state->object);err_ctx_cleanup:	ctdb_mutex_rados_ctx_destroy(cmr_state->ceph_cluster,				     cmr_state->ioctx);	talloc_free(cmr_state);	exit(ret ? 1 : 0);}
开发者ID:Alexander--,项目名称:samba,代码行数:35,


示例4: tevent_add_timer

static PyObject *py_tevent_context_add_timer(TeventContext_Object *self, PyObject *args){	TeventTimer_Object *ret;	struct timeval next_event;	struct tevent_timer *timer;	PyObject *handler;	if (!PyArg_ParseTuple(args, "lO", &next_event, &handler))		return NULL;	timer = tevent_add_timer(self->ev, NULL, next_event, py_timer_handler,							 handler);	if (timer == NULL) {		PyErr_SetNone(PyExc_RuntimeError);		return NULL;	}	ret = PyObject_New(TeventTimer_Object, &TeventTimer_Type);	if (ret == NULL) {		PyErr_NoMemory();		talloc_free(timer);		return NULL;	}	ret->timer = timer;	return (PyObject *)ret;}
开发者ID:Alexandr-Galko,项目名称:samba,代码行数:26,


示例5: add_oplock_timeout_handler

static void add_oplock_timeout_handler(files_struct *fsp){	struct smbd_server_connection *sconn = fsp->conn->sconn;	struct kernel_oplocks *koplocks = sconn->oplocks.kernel_ops;	/*	 * If kernel oplocks already notifies smbds when an oplock break times	 * out, just return.	 */	if (koplocks &&	    (koplocks->flags & KOPLOCKS_TIMEOUT_NOTIFICATION)) {		return;	}	if (fsp->oplock_timeout != NULL) {		DEBUG(0, ("Logic problem -- have an oplock event hanging "			  "around/n"));	}	fsp->oplock_timeout =		tevent_add_timer(fsp->conn->sconn->ev_ctx, fsp,				 timeval_current_ofs(OPLOCK_BREAK_TIMEOUT, 0),				 oplock_timeout_handler, fsp);	if (fsp->oplock_timeout == NULL) {		DEBUG(0, ("Could not add oplock timeout handler/n"));	}}
开发者ID:AIdrifter,项目名称:samba,代码行数:28,


示例6: wait_replies

static void wait_replies(struct tevent_context *ev_ctx,			 struct messaging_context *msg_ctx,			 bool multiple_replies){	struct tevent_timer *te;	bool timed_out = False;	te = tevent_add_timer(ev_ctx, NULL,			      timeval_current_ofs(timeout, 0),			      smbcontrol_timeout, (void *)&timed_out);	if (te == NULL) {		DEBUG(0, ("tevent_add_timer failed/n"));		return;	}	while (!timed_out) {		int ret;		if (num_replies > 0 && !multiple_replies)			break;		ret = tevent_loop_once(ev_ctx);		if (ret != 0) {			break;		}	}}
开发者ID:DanilKorotenko,项目名称:samba,代码行数:25,


示例7: remove_child_pid

static void remove_child_pid(struct smbd_parent_context *parent,			     pid_t pid,			     bool unclean_shutdown){	struct smbd_child_pid *child;	struct server_id child_id;	int ret;	child_id = pid_to_procid(pid);	ret = messaging_cleanup(parent->msg_ctx, pid);	if ((ret != 0) && (ret != ENOENT)) {		DEBUG(10, ("%s: messaging_cleanup returned %s/n",			   __func__, strerror(ret)));	}	smbprofile_cleanup(pid);	for (child = parent->children; child != NULL; child = child->next) {		if (child->pid == pid) {			struct smbd_child_pid *tmp = child;			DLIST_REMOVE(parent->children, child);			TALLOC_FREE(tmp);			parent->num_children -= 1;			break;		}	}	if (child == NULL) {		/* not all forked child processes are added to the children list */		DEBUG(2, ("Could not find child %d -- ignoring/n", (int)pid));		return;	}	if (unclean_shutdown) {		/* a child terminated uncleanly so tickle all		   processes to see if they can grab any of the		   pending locks                */		DEBUG(3,(__location__ " Unclean shutdown of pid %u/n",			(unsigned int)pid));		if (parent->cleanup_te == NULL) {			/* call the cleanup timer, but not too often */			int cleanup_time = lp_parm_int(-1, "smbd", "cleanuptime", 20);			parent->cleanup_te = tevent_add_timer(parent->ev_ctx,						parent,						timeval_current_ofs(cleanup_time, 0),						cleanup_timeout_fn,						parent);			DEBUG(1,("Scheduled cleanup of brl and lock database after unclean shutdown/n"));		}	}	if (!serverid_deregister(child_id)) {		DEBUG(1, ("Could not remove pid %d from serverid.tdb/n",			  (int)pid));	}}
开发者ID:aoa141,项目名称:samba,代码行数:59,


示例8: ldap_id_enumerate_timer

static void ldap_id_enumerate_timer(struct tevent_context *ev,                                    struct tevent_timer *tt,                                    struct timeval tv, void *pvt){    struct sdap_id_ctx *ctx = talloc_get_type(pvt, struct sdap_id_ctx);    struct tevent_timer *timeout;    struct tevent_req *req;    int delay;    errno_t ret;    if (be_is_offline(ctx->be)) {        DEBUG(4, ("Backend is marked offline, retry later!/n"));        /* schedule starting from now, not the last run */        delay = dp_opt_get_int(ctx->opts->basic, SDAP_ENUM_REFRESH_TIMEOUT);        tv = tevent_timeval_current_ofs(delay, 0);        ldap_id_enumerate_set_timer(ctx, tv);        return;    }    req = ldap_id_enumerate_send(ev, ctx);    if (!req) {        DEBUG(1, ("Failed to schedule enumeration, retrying later!/n"));        /* schedule starting from now, not the last run */        delay = dp_opt_get_int(ctx->opts->basic, SDAP_ENUM_REFRESH_TIMEOUT);        tv = tevent_timeval_current_ofs(delay, 0);        ret = ldap_id_enumerate_set_timer(ctx, tv);        if (ret != EOK) {            DEBUG(1, ("Error setting up enumerate timer/n"));        }        return;    }    tevent_req_set_callback(req, ldap_id_enumerate_reschedule, ctx);    /* if enumeration takes so long, either we try to enumerate too     * frequently, or something went seriously wrong */    delay = dp_opt_get_int(ctx->opts->basic, SDAP_ENUM_REFRESH_TIMEOUT);    tv = tevent_timeval_current_ofs(delay, 0);    timeout = tevent_add_timer(ctx->be->ev, req, tv,                               ldap_id_enumerate_timeout, req);    if (timeout == NULL) {        /* If we can't guarantee a timeout, we         * need to cancel the request, to avoid         * the possibility of starting another         * concurrently         */        talloc_zfree(req);        DEBUG(1, ("Failed to schedule enumeration, retrying later!/n"));        /* schedule starting from now, not the last run */        delay = dp_opt_get_int(ctx->opts->basic, SDAP_ENUM_REFRESH_TIMEOUT);        tv = tevent_timeval_current_ofs(delay, 0);        ret = ldap_id_enumerate_set_timer(ctx, tv);        if (ret != EOK) {            DEBUG(1, ("Error setting up enumerate timer/n"));        }        return;    }    return;}
开发者ID:nguay,项目名称:SSSD,代码行数:59,


示例9: pvfs_search_setup_timer

/*  setup a timer to destroy a open search after a inactivity period*/static void pvfs_search_setup_timer(struct pvfs_search_state *search){	struct tevent_context *ev = search->pvfs->ntvfs->ctx->event_ctx;	if (search->handle == INVALID_SEARCH_HANDLE) return;	talloc_free(search->te);	search->te = tevent_add_timer(ev, search,				     timeval_current_ofs(search->pvfs->search.inactivity_time, 0), 				     pvfs_search_timer, search);}
开发者ID:AIdrifter,项目名称:samba,代码行数:12,


示例10: init_aio_linux

static bool init_aio_linux(struct vfs_handle_struct *handle){	struct tevent_timer *te = NULL;	if (event_fd != -1) {		/* Already initialized. */		return true;	}	/* Schedule a shutdown event for 30 seconds from now. */	te = tevent_add_timer(handle->conn->sconn->ev_ctx,				NULL,				timeval_current_ofs(30, 0),				aio_linux_housekeeping,				NULL);	if (te == NULL) {		goto fail;	}	event_fd = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC);	if (event_fd == -1) {		goto fail;	}	aio_read_event = tevent_add_fd(server_event_context(),				NULL,				event_fd,				TEVENT_FD_READ,				aio_linux_done,				NULL);	if (aio_read_event == NULL) {		goto fail;	}	if (io_queue_init(lp_aio_max_threads(), &io_ctx)) {		goto fail;	}	DEBUG(10,("init_aio_linux: initialized with up to %d events/n",		  (int)lp_aio_max_threads()));	return true;  fail:	DEBUG(10,("init_aio_linux: initialization failed/n"));	TALLOC_FREE(te);	TALLOC_FREE(aio_read_event);	if (event_fd != -1) {		close(event_fd);		event_fd = -1;	}	memset(&io_ctx, '/0', sizeof(io_ctx));	return false;}
开发者ID:Distrotech,项目名称:samba,代码行数:57,


示例11: ctdb_check_for_dead_nodes

/*  see if any nodes are dead */static void ctdb_check_for_dead_nodes(struct tevent_context *ev,				      struct tevent_timer *te,				      struct timeval t, void *private_data){	struct ctdb_context *ctdb = talloc_get_type(private_data, struct ctdb_context);	int i;	/* send a keepalive to all other nodes, unless */	for (i=0;i<ctdb->num_nodes;i++) {		struct ctdb_node *node = ctdb->nodes[i];		if (node->flags & NODE_FLAGS_DELETED) {			continue;		}		if (node->pnn == ctdb->pnn) {			continue;		}				if (node->flags & NODE_FLAGS_DISCONNECTED) {			/* it might have come alive again */			if (node->rx_cnt != 0) {				ctdb_node_connected(node);			}			continue;		}		if (node->rx_cnt == 0) {			node->dead_count++;		} else {			node->dead_count = 0;		}		node->rx_cnt = 0;		if (node->dead_count >= ctdb->tunable.keepalive_limit) {			DEBUG(DEBUG_NOTICE,("dead count reached for node %u/n", node->pnn));			ctdb_node_dead(node);			ctdb_send_keepalive(ctdb, node->pnn);			/* maybe tell the transport layer to kill the			   sockets as well?			*/			continue;		}				DEBUG(DEBUG_DEBUG,("sending keepalive to %u/n", node->pnn));		ctdb_send_keepalive(ctdb, node->pnn);		node->tx_cnt = 0;	}	tevent_add_timer(ctdb->ev, ctdb->keepalive_ctx,			 timeval_current_ofs(ctdb->tunable.keepalive_interval, 0),			 ctdb_check_for_dead_nodes, ctdb);}
开发者ID:DanilKorotenko,项目名称:samba,代码行数:59,


示例12: fsp_lease_update

bool fsp_lease_update(struct share_mode_lock *lck,		      const struct GUID *client_guid,		      struct fsp_lease *lease){	struct share_mode_data *d = lck->data;	int idx;	struct share_mode_lease *l = NULL;	idx = find_share_mode_lease(d, client_guid, &lease->lease.lease_key);	if (idx != -1) {		l = &d->leases[idx];	}	if (l == NULL) {		DEBUG(1, ("%s: Could not find lease entry/n", __func__));		TALLOC_FREE(lease->timeout);		lease->lease.lease_state = SMB2_LEASE_NONE;		lease->lease.lease_epoch += 1;		lease->lease.lease_flags = 0;		return false;	}	DEBUG(10,("%s: refresh lease state/n", __func__));	/* Ensure we're in sync with current lease state. */	if (lease->lease.lease_epoch != l->epoch) {		DEBUG(10,("%s: cancel outdated timeout/n", __func__));		TALLOC_FREE(lease->timeout);	}	lease->lease.lease_epoch = l->epoch;	lease->lease.lease_state = l->current_state;	if (l->breaking) {		lease->lease.lease_flags |= SMB2_LEASE_FLAG_BREAK_IN_PROGRESS;		if (lease->timeout == NULL) {			struct timeval t = timeval_current_ofs(OPLOCK_BREAK_TIMEOUT, 0);			DEBUG(10,("%s: setup timeout handler/n", __func__));			lease->timeout = tevent_add_timer(lease->sconn->ev_ctx,							  lease, t,							  lease_timeout_handler,							  lease);			if (lease->timeout == NULL) {				DEBUG(0, ("%s: Could not add lease timeout handler/n",					  __func__));			}		}	} else {		lease->lease.lease_flags &= ~SMB2_LEASE_FLAG_BREAK_IN_PROGRESS;		TALLOC_FREE(lease->timeout);	}	return true;}
开发者ID:Distrotech,项目名称:samba,代码行数:56,


示例13: add_krb5_ticket_gain_handler_event

static void add_krb5_ticket_gain_handler_event(struct WINBINDD_CCACHE_ENTRY *entry,				     struct timeval t){	entry->refresh_time = 0;	entry->event = tevent_add_timer(winbind_event_context(),				       entry,				       t,				       krb5_ticket_gain_handler,				       entry);}
开发者ID:AIdrifter,项目名称:samba,代码行数:10,


示例14: composite_done

_PUBLIC_ void composite_done(struct composite_context *ctx){	if (!ctx->used_wait && !ctx->async.fn) {		tevent_add_timer(ctx->event_ctx, ctx, timeval_zero(), composite_trigger, ctx);	}	ctx->state = COMPOSITE_STATE_DONE;	if (ctx->async.fn != NULL) {		ctx->async.fn(ctx);	}}
开发者ID:DanilKorotenko,项目名称:samba,代码行数:10,


示例15: ctdb_lock_timeout_handler

/* * Callback routine when required locks are not obtained within timeout * Called from parent context */static void ctdb_lock_timeout_handler(struct tevent_context *ev,				    struct tevent_timer *ttimer,				    struct timeval current_time,				    void *private_data){	static const char * debug_locks = NULL;	struct lock_context *lock_ctx;	struct ctdb_context *ctdb;	pid_t pid;	lock_ctx = talloc_get_type_abort(private_data, struct lock_context);	ctdb = lock_ctx->ctdb;	if (lock_ctx->type == LOCK_RECORD || lock_ctx->type == LOCK_DB) {		DEBUG(DEBUG_WARNING,		      ("Unable to get %s lock on database %s for %.0lf seconds/n",		       (lock_ctx->type == LOCK_RECORD ? "RECORD" : "DB"),		       lock_ctx->ctdb_db->db_name,		       timeval_elapsed(&lock_ctx->start_time)));	} else {		DEBUG(DEBUG_WARNING,		      ("Unable to get ALLDB locks for %.0lf seconds/n",		       timeval_elapsed(&lock_ctx->start_time)));	}	/* Fire a child process to find the blocking process. */	if (debug_locks == NULL) {		debug_locks = getenv("CTDB_DEBUG_LOCKS");		if (debug_locks == NULL) {			debug_locks = talloc_asprintf(ctdb,						      "%s/debug_locks.sh",						      getenv("CTDB_BASE"));		}	}	if (debug_locks != NULL) {		pid = vfork();		if (pid == 0) {			execl(debug_locks, debug_locks, NULL);			_exit(0);		}		ctdb_track_child(ctdb, pid);	} else {		DEBUG(DEBUG_WARNING,		      (__location__		       " Unable to setup lock debugging - no memory?/n"));	}	/* reset the timeout timer */	// talloc_free(lock_ctx->ttimer);	lock_ctx->ttimer = tevent_add_timer(ctdb->ev,					    lock_ctx,					    timeval_current_ofs(10, 0),					    ctdb_lock_timeout_handler,					    (void *)lock_ctx);}
开发者ID:AIdrifter,项目名称:samba,代码行数:59,


示例16: each_second

static void each_second(struct tevent_context *ev,			struct tevent_timer *te,			struct timeval t,			void *private_data){	struct db_context *db = talloc_get_type(private_data, struct db_context);	print_counters();	tevent_add_timer(ev, db, timeval_current_ofs(1, 0), each_second, db);}
开发者ID:AIdrifter,项目名称:samba,代码行数:11,


示例17: packet_recv_enable

/*  re-enable receiving */_PUBLIC_ void packet_recv_enable(struct packet_context *pc){	if (pc->recv_need_enable) {		pc->recv_need_enable = false;		TEVENT_FD_READABLE(pc->fde);	}	pc->recv_disable = false;	if (pc->num_read != 0 && pc->packet_size >= pc->num_read) {		tevent_add_timer(pc->ev, pc, timeval_zero(), packet_next_event, pc);	}}
开发者ID:AIdrifter,项目名称:samba,代码行数:14,


示例18: nbtd_wins_start_refresh_timer

/*  start a timer to refresh this name*/static void nbtd_wins_start_refresh_timer(struct nbtd_iface_name *iname){	uint32_t refresh_time;	uint32_t max_refresh_time = lpcfg_parm_int(iname->iface->nbtsrv->task->lp_ctx, NULL, "nbtd", "max_refresh_time", 7200);	refresh_time = MIN(max_refresh_time, iname->ttl/2);		tevent_add_timer(iname->iface->nbtsrv->task->event_ctx,			iname, 			timeval_add(&iname->registration_time, refresh_time, 0),			nbtd_wins_refresh, iname);}
开发者ID:DanilKorotenko,项目名称:samba,代码行数:15,


示例19: test_event_context_threaded

static bool test_event_context_threaded(struct torture_context *test,					const void *test_data){	struct tevent_context *ev;	struct tevent_timer *te;	struct tevent_fd *fde;	pthread_t poll_thread;	int fds[2];	int ret;	char c = 0;	ev = tevent_context_init_byname(test, "poll_mt");	torture_assert(test, ev != NULL, "poll_mt not supported");	tevent_set_trace_callback(ev, test_event_threaded_trace, NULL);	te = tevent_add_timer(ev, ev, timeval_current_ofs(5, 0),			      test_event_threaded_timer, NULL);	torture_assert(test, te != NULL, "Could not add timer");	ret = pthread_create(&poll_thread, NULL, test_event_poll_thread, ev);	torture_assert(test, ret == 0, "Could not create poll thread");	ret = pipe(fds);	torture_assert(test, ret == 0, "Could not create pipe");	poll(NULL, 0, 100);	test_event_threaded_lock();	fde = tevent_add_fd(ev, ev, fds[0], TEVENT_FD_READ,			    test_event_threaded_read_handler, &fds[0]);	torture_assert(test, fde != NULL, "Could not add fd event");	test_event_threaded_unlock();	poll(NULL, 0, 100);	write(fds[1], &c, 1);	poll(NULL, 0, 100);	test_event_threaded_lock();	do_shutdown = true;	test_event_threaded_unlock();	write(fds[1], &c, 1);	ret = pthread_join(poll_thread, NULL);	torture_assert(test, ret == 0, "pthread_join failed");	return true;}
开发者ID:Gazzonyx,项目名称:samba,代码行数:53,


示例20: ctdb_startup_callback

/*  called when the startup event script finishes */static void ctdb_startup_callback(struct ctdb_context *ctdb, int status, void *p){	if (status != 0) {		DEBUG(DEBUG_ERR,("startup event failed/n"));		tevent_add_timer(ctdb->ev, ctdb->monitor->monitor_context,				 timeval_current_ofs(5, 0),				 ctdb_run_startup, ctdb);		return;	}	DEBUG(DEBUG_NOTICE,("startup event OK - enabling monitoring/n"));	ctdb_set_runstate(ctdb, CTDB_RUNSTATE_RUNNING);	ctdb->monitor->next_interval = 2;	ctdb_run_notification_script(ctdb, "startup");	ctdb->monitor->monitoring_mode = CTDB_MONITORING_ACTIVE;	tevent_add_timer(ctdb->ev, ctdb->monitor->monitor_context,			 timeval_current_ofs(ctdb->monitor->next_interval, 0),			 ctdb_check_health, ctdb);}
开发者ID:Distrotech,项目名称:samba,代码行数:24,


示例21: ctdb_tcp_restart

/*  shutdown and try to restart a connection to a node after it has been  disconnected*/static void ctdb_tcp_restart(struct ctdb_node *node){    struct ctdb_tcp_node *tnode = talloc_get_type(                                      node->private_data, struct ctdb_tcp_node);    DEBUG(DEBUG_NOTICE,("Tearing down connection to dead node :%d/n", node->pnn));    ctdb_tcp_stop_connection(node);    tnode->connect_te = tevent_add_timer(node->ctdb->ev, tnode,                                         timeval_zero(),                                         ctdb_tcp_node_connect, node);}
开发者ID:miguelinux,项目名称:samba,代码行数:17,


示例22: ctdb_check_health

/*  see if the event scripts think we are healthy */static void ctdb_check_health(struct tevent_context *ev,			      struct tevent_timer *te,			      struct timeval t, void *private_data){	struct ctdb_context *ctdb = talloc_get_type(private_data, struct ctdb_context);	bool skip_monitoring = false;	int ret = 0;	if (ctdb->recovery_mode != CTDB_RECOVERY_NORMAL ||	    ctdb->monitor->monitoring_mode == CTDB_MONITORING_DISABLED) {		skip_monitoring = true;	} else {		if (ctdb_db_all_frozen(ctdb)) {			DEBUG(DEBUG_ERR,			      ("Skip monitoring since databases are frozen/n"));			skip_monitoring = true;		}	}	if (skip_monitoring) {		tevent_add_timer(ctdb->ev, ctdb->monitor->monitor_context,				 timeval_current_ofs(ctdb->monitor->next_interval, 0),				 ctdb_check_health, ctdb);		return;	}	ret = ctdb_event_script_callback(ctdb,					 ctdb->monitor->monitor_context,					 ctdb_health_callback,					 ctdb, CTDB_EVENT_MONITOR, "%s", "");	if (ret != 0) {		DEBUG(DEBUG_ERR,("Unable to launch monitor event script/n"));		ctdb->monitor->next_interval = 5;		tevent_add_timer(ctdb->ev, ctdb->monitor->monitor_context,				 timeval_current_ofs(5, 0),				 ctdb_check_health, ctdb);	}}
开发者ID:Distrotech,项目名称:samba,代码行数:41,


示例23: ctdb_run_startup

static void ctdb_run_startup(struct tevent_context *ev,			     struct tevent_timer *te,			     struct timeval t, void *private_data){	struct ctdb_context *ctdb = talloc_get_type(private_data,						    struct ctdb_context);	int ret;	/* This is necessary to avoid the "startup" event colliding	 * with the "ipreallocated" event from the takeover run	 * following the first recovery.  We might as well serialise	 * these things if we can.	 */	if (ctdb->runstate < CTDB_RUNSTATE_STARTUP) {		DEBUG(DEBUG_NOTICE,		      ("Not yet in startup runstate. Wait one more second/n"));		tevent_add_timer(ctdb->ev, ctdb->monitor->monitor_context,				 timeval_current_ofs(1, 0),				 ctdb_run_startup, ctdb);		return;	}	/* release any IPs we hold from previous runs of the daemon */	ctdb_release_all_ips(ctdb);	DEBUG(DEBUG_NOTICE,("Running the /"startup/" event./n"));	ret = ctdb_event_script_callback(ctdb,					 ctdb->monitor->monitor_context,					 ctdb_startup_callback,					 ctdb, CTDB_EVENT_STARTUP, "%s", "");	if (ret != 0) {		DEBUG(DEBUG_ERR,("Unable to launch startup event script/n"));		tevent_add_timer(ctdb->ev, ctdb->monitor->monitor_context,				 timeval_current_ofs(5, 0),				 ctdb_run_startup, ctdb);	}}
开发者ID:Distrotech,项目名称:samba,代码行数:38,


示例24: ctdb_start_keepalive

void ctdb_start_keepalive(struct ctdb_context *ctdb){	struct tevent_timer *te;	ctdb->keepalive_ctx = talloc_new(ctdb);	CTDB_NO_MEMORY_FATAL(ctdb, ctdb->keepalive_ctx);	te = tevent_add_timer(ctdb->ev, ctdb->keepalive_ctx,			      timeval_current_ofs(ctdb->tunable.keepalive_interval, 0),			      ctdb_check_for_dead_nodes, ctdb);	CTDB_NO_MEMORY_FATAL(ctdb, te);	DEBUG(DEBUG_NOTICE,("Keepalive monitoring has been started/n"));}
开发者ID:DanilKorotenko,项目名称:samba,代码行数:14,


示例25: smbprofile_dump_schedule_timer

void smbprofile_dump_schedule_timer(void){	struct timeval tv;	GetTimeOfDay(&tv);	tv.tv_sec += 1;	smbprofile_state.internal.te = tevent_add_timer(				smbprofile_state.internal.ev,				smbprofile_state.internal.ev,				tv,				smbprofile_dump_timer,				NULL);}
开发者ID:abartlet,项目名称:samba-old,代码行数:14,


示例26: ctdb_wait_for_first_recovery

/*  start watching for nodes that might be dead */void ctdb_wait_for_first_recovery(struct ctdb_context *ctdb){	ctdb_set_runstate(ctdb, CTDB_RUNSTATE_FIRST_RECOVERY);	ctdb->monitor = talloc(ctdb, struct ctdb_monitor_state);	CTDB_NO_MEMORY_FATAL(ctdb, ctdb->monitor);	ctdb->monitor->monitor_context = talloc_new(ctdb->monitor);	CTDB_NO_MEMORY_FATAL(ctdb, ctdb->monitor->monitor_context);	tevent_add_timer(ctdb->ev, ctdb->monitor->monitor_context,			 timeval_current_ofs(1, 0),			 ctdb_wait_until_recovered, ctdb);}
开发者ID:Distrotech,项目名称:samba,代码行数:17,


示例27: ctdb_tcp_tnode_cb

/*  called when a complete packet has come in - should not happen on this socket  unless the other side closes the connection with RST or FIN */void ctdb_tcp_tnode_cb(uint8_t *data, size_t cnt, void *private_data){	struct ctdb_node *node = talloc_get_type(private_data, struct ctdb_node);	struct ctdb_tcp_node *tnode = talloc_get_type(		node->private_data, struct ctdb_tcp_node);	if (data == NULL) {		node->ctdb->upcalls->node_dead(node);	}	ctdb_tcp_stop_connection(node);	tnode->connect_te = tevent_add_timer(node->ctdb->ev, tnode,					     timeval_current_ofs(3, 0),					     ctdb_tcp_node_connect, node);}
开发者ID:artemh,项目名称:samba,代码行数:19,


示例28: ctdb_statistics_init

int ctdb_statistics_init(struct ctdb_context *ctdb){	bzero(&ctdb->statistics, sizeof(struct ctdb_statistics));	ctdb->statistics.statistics_start_time = timeval_current();	bzero(&ctdb->statistics_current, sizeof(struct ctdb_statistics));	ctdb->statistics_current.statistics_start_time = timeval_current();	bzero(ctdb->statistics_history, sizeof(ctdb->statistics_history));	tevent_add_timer(ctdb->ev, ctdb,			 timeval_current_ofs(ctdb->tunable.stat_history_interval, 0),			 ctdb_statistics_update, ctdb);	return 0;}
开发者ID:Alexander--,项目名称:samba,代码行数:15,


示例29: tevent_req_set_endtime

bool tevent_req_set_endtime(struct tevent_req *req,			    struct tevent_context *ev,			    struct timeval endtime){	TALLOC_FREE(req->internal.timer);	req->internal.timer = tevent_add_timer(ev, req, endtime,					       tevent_req_timedout,					       req);	if (tevent_req_nomem(req->internal.timer, req)) {		return false;	}	return true;}
开发者ID:0x24bin,项目名称:winexe-1,代码行数:15,


示例30: ccache_regain_all_now

void ccache_regain_all_now(void){	struct WINBINDD_CCACHE_ENTRY *cur;	struct timeval t = timeval_current();	for (cur = ccache_list; cur; cur = cur->next) {		struct tevent_timer *new_event;		/*		 * if refresh_time is 0, we know that the		 * the event has the krb5_ticket_gain_handler		 */		if (cur->refresh_time == 0) {			new_event = tevent_add_timer(winbind_event_context(),						    cur,						    t,						    krb5_ticket_gain_handler,						    cur);		} else {			new_event = tevent_add_timer(winbind_event_context(),						    cur,						    t,						    krb5_ticket_refresh_handler,						    cur);		}		if (!new_event) {			continue;		}		TALLOC_FREE(cur->event);		cur->event = new_event;	}	return;}
开发者ID:AIdrifter,项目名称:samba,代码行数:36,



注:本文中的tevent_add_timer函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ tevent_req_set_callback函数代码示例
C++ tet_result函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。