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

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

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

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

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

示例1: twoway_received

inttwoway_received (struct thread *thread){  struct ospf6_neighbor *on;  on = (struct ospf6_neighbor *) THREAD_ARG (thread);  assert (on);  if (on->state > OSPF6_NEIGHBOR_INIT)    return 0;  if (IS_OSPF6_DEBUG_NEIGHBOR (EVENT))    zlog_info ("Neighbor Event %s: *2Way-Received*", on->name);  thread_add_event (master, neighbor_change, on->ospf6_if, 0);  if (! need_adjacency (on))    {      ospf6_neighbor_state_change (OSPF6_NEIGHBOR_TWOWAY, on);      return 0;    }  ospf6_neighbor_state_change (OSPF6_NEIGHBOR_EXSTART, on);  SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_MSBIT);  SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_MBIT);  SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_IBIT);  THREAD_OFF (on->thread_send_dbdesc);  on->thread_send_dbdesc =    thread_add_event (master, ospf6_dbdesc_send, on, 0);  return 0;}
开发者ID:AllardJ,项目名称:Tomato,代码行数:33,


示例2: interface_up

/* Interface State Machine */intinterface_up (struct thread *thread){  struct ospf6_interface *oi;  oi = (struct ospf6_interface *) THREAD_ARG (thread);  assert (oi && oi->interface);  if (IS_OSPF6_DEBUG_INTERFACE)    zlog_debug ("Interface Event %s: [InterfaceUp]",		oi->interface->name);  /* check physical interface is up */  if (! if_is_up (oi->interface))    {      if (IS_OSPF6_DEBUG_INTERFACE)        zlog_debug ("Interface %s is down, can't execute [InterfaceUp]",		    oi->interface->name);      return 0;    }  /* if already enabled, do nothing */  if (oi->state > OSPF6_INTERFACE_DOWN)    {      if (IS_OSPF6_DEBUG_INTERFACE)        zlog_debug ("Interface %s already enabled",		    oi->interface->name);      return 0;    }  /* Join AllSPFRouters */  // send join allspfrouters message to shim   thread_add_event (master, rospf6_join_allspfrouters_send, oi, 0);//  ospf6_join_allspfrouters (oi->interface->ifindex);  /* Update interface route */  ospf6_interface_connected_route_update (oi->interface);  zlog_debug("about to send hello message...");  /* Schedule Hello */  if (! CHECK_FLAG (oi->flag, OSPF6_INTERFACE_PASSIVE))    thread_add_event (master, rospf6_hello_send, oi, 0);  /* decide next interface state */  if (if_is_pointopoint (oi->interface))    ospf6_interface_state_change (OSPF6_INTERFACE_POINTTOPOINT, oi);  else if (oi->priority == 0)    ospf6_interface_state_change (OSPF6_INTERFACE_DROTHER, oi);  else    {      ospf6_interface_state_change (OSPF6_INTERFACE_WAITING, oi);      thread_add_timer (master, wait_timer, oi, oi->dead_interval);    }  return 0;}
开发者ID:ecks,项目名称:sis-is,代码行数:58,


示例3: interface_down

intinterface_down (struct thread *thread){  struct ospf6_interface *oi;  struct listnode *node, *nnode;  struct ospf6_neighbor *on;  oi = (struct ospf6_interface *) THREAD_ARG (thread);  assert (oi && oi->interface);  if (IS_OSPF6_DEBUG_INTERFACE)    zlog_debug ("Interface Event %s: [InterfaceDown]",		oi->interface->name);  /* Leave AllSPFRouters */  if (oi->state > OSPF6_INTERFACE_DOWN)    thread_add_event (master, rospf6_leave_allspfrouters_send, oi, 0);//    ospf6_leave_allspfrouters (oi->interface->ifindex);  ospf6_interface_state_change (OSPF6_INTERFACE_DOWN, oi);  for (ALL_LIST_ELEMENTS (oi->neighbor_list, node, nnode, on))    ospf6_neighbor_delete (on);    list_delete_all_node (oi->neighbor_list);  return 0;}
开发者ID:ecks,项目名称:sis-is,代码行数:28,


示例4: start_vrrp

/* Daemon init sequence */static voidstart_vrrp(void){	/* Initialize sub-system */	init_interface_queue();	kernel_netlink_init();	gratuitous_arp_init();	ndisc_init();#ifdef _WITH_SNMP_	if (!reload && snmp)		vrrp_snmp_agent_init();#endif#ifdef _WITH_LVS_	/* Initialize ipvs related */	ipvs_start();#endif	/* Parse configuration file */	data = alloc_global_data();	vrrp_data = alloc_vrrp_data();	alloc_vrrp_buffer();	init_data(conf_file, vrrp_init_keywords);	if (!vrrp_data) {		stop_vrrp();		return;	}	if (reload) {		clear_diff_saddresses();		clear_diff_sroutes();		clear_diff_vrrp();		clear_diff_script();	}	/* Complete VRRP initialization */	if (!vrrp_complete_init()) {		stop_vrrp();		return;	}	/* Post initializations */	log_message(LOG_INFO, "Configuration is using : %lu Bytes", mem_allocated);	/* Set static entries */	netlink_iplist(vrrp_data->static_addresses, IPADDRESS_ADD);	netlink_rtlist_ipv4(vrrp_data->static_routes, IPROUTE_ADD);	/* Dump configuration */	if (debug & 4) {		dump_global_data(data);		dump_vrrp_data(vrrp_data);	}	/* Initialize linkbeat */	init_interface_linkbeat();	/* Init & start the VRRP packet dispatcher */	thread_add_event(master, vrrp_dispatcher_init, NULL,			 VRRP_DISPATCHER);}
开发者ID:cyclops8456,项目名称:vyatta-keepalived,代码行数:61,


示例5: bgp_dump_interval_add

static intbgp_dump_interval_add (struct bgp_dump *bgp_dump, int interval){  int secs_into_day;  time_t t;  struct tm *tm;  if (interval > 0)    {      /* Periodic dump every interval seconds */      if ((interval < 86400) && ((86400 % interval) == 0))	{	  /* Dump at predictable times: if a day has a whole number of	   * intervals, dump every interval seconds starting from midnight	   */	  (void) time(&t);	  tm = localtime(&t);	  secs_into_day = tm->tm_sec + 60*tm->tm_min + 60*60*tm->tm_hour;	  interval = interval - secs_into_day % interval; /* always > 0 */	}      bgp_dump->t_interval = thread_add_timer (bm->master, bgp_dump_interval_func,					       bgp_dump, interval);    }  else    {      /* One-off dump: execute immediately, don't affect any scheduled dumps */      bgp_dump->t_interval = thread_add_event (bm->master, bgp_dump_interval_func,					       bgp_dump, 0);    }  return 0;}
开发者ID:ColinBS,项目名称:quagga-rtrlib,代码行数:32,


示例6: ospf6_interface_if_add

voidospf6_interface_if_add (struct interface *ifp){  struct ospf6_interface *oi;  unsigned int iobuflen;  oi = (struct ospf6_interface *) ifp->info;  if (oi == NULL)    return;  /* Try to adjust I/O buffer size with IfMtu */  if (oi->ifmtu == 0)    oi->ifmtu = ifp->mtu6;  iobuflen = ospf6_iobuf_size (ifp->mtu6);  if (oi->ifmtu > iobuflen)    {      if (IS_OSPF6_DEBUG_INTERFACE)        zlog_debug ("Interface %s: IfMtu is adjusted to I/O buffer size: %d.",		    ifp->name, iobuflen);      oi->ifmtu = iobuflen;    }  /* interface start */  if (oi->area)    thread_add_event (master, interface_up, oi, 0);}
开发者ID:rgmabs19357,项目名称:qpimd,代码行数:26,


示例7: frrzmq_check_events

void frrzmq_check_events(struct frrzmq_cb **cbp, struct cb_core *core,			 int event){	struct frrzmq_cb *cb;	int events;	size_t len;	if (!cbp)		return;	cb = (*cbp);	if (!cb || !cb->zmqsock)		return;	len = sizeof(events);	if (zmq_getsockopt(cb->zmqsock, ZMQ_EVENTS, &events, &len))		return;	if (events & event && core->thread && !core->cancelled) {		struct thread_master *tm = core->thread->master;		thread_cancel(core->thread);		core->thread = NULL;		thread_add_event(tm, (event == ZMQ_POLLIN ? frrzmq_read_msg							  : frrzmq_write_msg),				 cbp, cb->fd, &core->thread);	}}
开发者ID:Azure,项目名称:sonic-bcm-lkm,代码行数:25,


示例8: bad_lsreq

int bad_lsreq(struct thread * thread){  struct ospf6_neighbor * on;  struct ospf6_lsa * lsa;  on = (struct ospf6_neighbor *) THREAD_ARG(thread);  assert(on);  if(on->state < OSPF6_NEIGHBOR_EXCHANGE)    return 0;  if(IS_OSPF6_SIBLING_DEBUG_NEIGHBOR)    zlog_debug("Neighbor Event %s: *BadLSReq*", on->name);  ospf6_neighbor_state_change(OSPF6_NEIGHBOR_EXSTART, on);  SET_FLAG(on->dbdesc_bits, OSPF6_DBDESC_MSBIT);  SET_FLAG(on->dbdesc_bits, OSPF6_DBDESC_MBIT);  SET_FLAG(on->dbdesc_bits, OSPF6_DBDESC_IBIT);  ospf6_lsdb_remove_all(on->summary_list);  ospf6_lsdb_remove_all(on->request_list);  for(lsa = ospf6_lsdb_head(on->retrans_list); lsa;      lsa = ospf6_lsdb_next(lsa))  {    ospf6_decrement_retrans_count(lsa);    ospf6_lsdb_remove(lsa, on->retrans_list);  }  THREAD_OFF(on->thread_send_dbdesc);  on->thread_send_dbdesc =     thread_add_event(master, ospf6_dbdesc_send, on, 0);  return 0;}
开发者ID:ecks,项目名称:harry,代码行数:34,


示例9: init_sock

/* Init socket handler */voidinit_sock(void){	sock = (SOCK *) MALLOC(sizeof (SOCK));	memset(sock, 0, sizeof (SOCK));	thread_add_event(master, tcp_connect_thread, sock, 0);}
开发者ID:Oefenweb,项目名称:keepalived,代码行数:8,


示例10: sigusr2_vrrp

voidsigusr2_vrrp(void *v, int sig){	log_message(LOG_INFO, "Printing VRRP stats for process(%d) on signal",		    getpid());	thread_add_event(master, print_vrrp_stats, NULL, 0);}
开发者ID:vrit,项目名称:keepalived,代码行数:7,


示例11: zclient_event

static voidzclient_event (enum event event, struct zclient *zclient){  switch (event)    {    case ZCLIENT_SCHEDULE:      if (! zclient->t_connect)	zclient->t_connect =	  thread_add_event (master, zclient_connect, zclient, 0);      break;    case ZCLIENT_CONNECT:      if (zclient->fail >= 10)	return;      if (zclient_debug)	zlog_debug ("zclient connect schedule interval is %d", 		   zclient->fail < 3 ? 10 : 60);      if (! zclient->t_connect)	zclient->t_connect = 	  thread_add_timer (master, zclient_connect, zclient,			    zclient->fail < 3 ? 10 : 60);      break;    case ZCLIENT_READ:      zclient->t_read = 	thread_add_read (master, zclient_read, zclient, zclient->sock);      break;    }}
开发者ID:gvsurenderreddy,项目名称:quagga,代码行数:27,


示例12: sighup_vrrp

voidsighup_vrrp(void *v, int sig){	log_message(LOG_INFO, "Reloading VRRP child process(%d) on signal",		    getpid());	thread_add_event(master, reload_vrrp_thread, NULL, 0);}
开发者ID:lark,项目名称:keepalived,代码行数:7,


示例13: sighup_check

voidsighup_check(void *v, int sig){	log_message(LOG_INFO, "Reloading Healthchecker child process(%d) on signal",		    getpid());	thread_add_event(master, reload_check_thread, NULL, 0);}
开发者ID:Sir168,项目名称:dsnat,代码行数:7,


示例14: zebra_server_send_message

static intzebra_server_send_message(struct zserv *client){  if (client->t_suicide)    return -1;  switch (buffer_write(client->wb, client->sock, STREAM_DATA(client->obuf),		       stream_get_endp(client->obuf)))    {    case BUFFER_ERROR:      zlog_warn("%s: buffer_write failed to zserv client fd %d, closing",      		 __func__, client->sock);      /* Schedule a delayed close since many of the functions that call this         one do not check the return code.  They do not allow for the	 possibility that an I/O error may have caused the client to be	 deleted. */      client->t_suicide = thread_add_event(zebrad.master, zserv_delayed_close,					   client, 0);      return -1;    case BUFFER_EMPTY:      THREAD_OFF(client->t_write);      break;    case BUFFER_PENDING:      THREAD_WRITE_ON(zebrad.master, client->t_write,		      zserv_flush_data, client, client->sock);      break;    }  return 0;}
开发者ID:MichaelQQ,项目名称:Quagga-PE,代码行数:28,


示例15: oneway_received

intoneway_received (struct thread *thread){  struct ospf6_neighbor *on;  struct ospf6_lsa *lsa;  on = (struct ospf6_neighbor *) THREAD_ARG (thread);  assert (on);  if (on->state < OSPF6_NEIGHBOR_TWOWAY)    return 0;  if (IS_OSPF6_DEBUG_NEIGHBOR (EVENT))    zlog_info ("Neighbor Event %s: *1Way-Received*", on->name);  ospf6_neighbor_state_change (OSPF6_NEIGHBOR_INIT, on);  thread_add_event (master, neighbor_change, on->ospf6_if, 0);  ospf6_lsdb_remove_all (on->summary_list);  ospf6_lsdb_remove_all (on->request_list);  for (lsa = ospf6_lsdb_head (on->retrans_list); lsa;       lsa = ospf6_lsdb_next (lsa))    {      ospf6_decrement_retrans_count (lsa);      ospf6_lsdb_remove (lsa, on->retrans_list);    }  THREAD_OFF (on->thread_send_dbdesc);  THREAD_OFF (on->thread_send_lsreq);  THREAD_OFF (on->thread_send_lsupdate);  THREAD_OFF (on->thread_send_lsack);  return 0;}
开发者ID:AllardJ,项目名称:Tomato,代码行数:34,


示例16: bgp_dump_interval_add

intbgp_dump_interval_add (struct bgp_dump *bgp_dump, int interval){  int bgp_dump_interval_func (struct thread *);  int interval2, secs_into_day;  time_t t;  struct tm *tm;  if (interval > 0 )    {      if ((interval < 86400) && ((86400 % interval) == 0))	{	  (void) time(&t);	  tm = localtime(&t);	  secs_into_day = tm->tm_sec + 60*tm->tm_min + 60*60*tm->tm_hour;	  interval2 = interval - secs_into_day % interval;	  if(interval2 == 0) interval2 = interval;	}      else	{	  interval2 = interval;	}      bgp_dump->t_interval = thread_add_timer (master, bgp_dump_interval_func, 					       bgp_dump, interval2);    }  else    {      bgp_dump->t_interval = thread_add_event (master, bgp_dump_interval_func,					       bgp_dump, 0);    }  return 0;}
开发者ID:inet-framework,项目名称:inet-quagga,代码行数:33,


示例17: ospf6_spf_schedule

voidospf6_spf_schedule (struct ospf6_area *oa){  if (oa->thread_spf_calculation)    return;  oa->thread_spf_calculation =    thread_add_event (master, ospf6_spf_calculation_thread, oa, 0);}
开发者ID:Addision,项目名称:LVS,代码行数:8,


示例18: ospf6_interface_enable

voidospf6_interface_enable (struct ospf6_interface *oi){  UNSET_FLAG (oi->flag, OSPF6_INTERFACE_DISABLE);  oi->thread_send_hello =    thread_add_event (master, ospf6_hello_send, oi, 0);}
开发者ID:rgmabs19357,项目名称:qpimd,代码行数:8,


示例19: ospf6_interface_enable

voidospf6_interface_enable (struct ospf6_interface *oi){  UNSET_FLAG (oi->flag, OSPF6_INTERFACE_DISABLE);  zlog_debug("about to send hello message...");  oi->thread_send_hello =    thread_add_event (master, rospf6_hello_send, oi, 0);}
开发者ID:ecks,项目名称:sis-is,代码行数:9,


示例20: ospf6_interface_state_update

voidospf6_interface_state_update (struct interface *ifp){  struct ospf6_interface *oi;  oi = (struct ospf6_interface *) ifp->info;  if (oi == NULL)    return;  if (oi->area == NULL)    return;  if (if_is_up (ifp))    thread_add_event (master, interface_up, oi, 0);  else    thread_add_event (master, interface_down, oi, 0);  return;}
开发者ID:rgmabs19357,项目名称:qpimd,代码行数:18,


示例21: zclient_lookup_sched_now

/* Schedule connection for now. */static void zclient_lookup_sched_now(struct zclient *zlookup){  zassert(!zlookup->t_connect);  zlookup->t_connect = thread_add_event(master, zclient_lookup_connect,					zlookup, 0);  zlog_notice("%s: zclient lookup immediate connection scheduled",	      __PRETTY_FUNCTION__);}
开发者ID:FujitsuNetworkCommunications,项目名称:Quagga-Graceful-Restart,代码行数:11,


示例22: vrrp_init_script

/* if run after vrrp_init_state(), it will be able to detect scripts that * have been disabled because of a sync group and will avoid to start them. */static voidvrrp_init_script(list l){	vrrp_script_t *vscript;	element e;	for (e = LIST_HEAD(l); e; ELEMENT_NEXT(e)) {		vscript = ELEMENT_DATA(e);		if (vscript->inuse == 0)			vscript->result = VRRP_SCRIPT_STATUS_DISABLED;		if (vscript->result == VRRP_SCRIPT_STATUS_INIT) {			vscript->result = vscript->rise - 1; /* one success is enough */			thread_add_event(master, vrrp_script_thread, vscript, vscript->interval);		} else if (vscript->result == VRRP_SCRIPT_STATUS_INIT_GOOD) {			vscript->result = vscript->rise; /* one failure is enough */			thread_add_event(master, vrrp_script_thread, vscript, vscript->interval);		}	}}
开发者ID:Olipro,项目名称:keepalived,代码行数:23,


示例23: hello_on_eth_state_changed

void hello_on_eth_state_changed(struct backbone_eth* eth){	if(!eth->hello_master)//insert init code.		eth->hello_master = malloc_z(struct hello_master);	struct hello_master* hello_master = eth->hello_master;    printf("hello state changed/n");	if(eth->_state == ETH_DOWN)	{		//THREAD_OFF(hello_master->dead_timer_high);		//THREAD_OFF(hello_master->dead_timer_low);		THREAD_OFF(hello_master->hello_timer_high);		THREAD_OFF(hello_master->hello_timer_low);	}    else if(eth->_state == ETH_UP)	{		//if(check_global_hello_config()==0)		//{			hello_master->h_hello_val = H_HELLO_VAL;			hello_master->l_hello_val = L_HELLO_VAL;			hello_master->h_dead_val = H_DEAD_VAL;			hello_master->l_dead_val = L_DEAD_VAL;		//}		//else		//{		//	int ifid = global_config.if_id;		//	if(ifid == -1)		//	{		//		update_timer_by_backbone(eth);		//	}		//	else if(global_config.if_id == eth->interface_id)		//	{		//		update_timer_by_backbone(eth);		//	}//		}		hello_master->hello_timer_high = thread_add_event(master, hello_high_send, eth, 0);		hello_master->hello_timer_low = thread_add_event(master, hello_low_send, eth, 0);	}}
开发者ID:exeasy,项目名称:pma2,代码行数:39,


示例24: ospf6_spf_schedule

void ospf6_spf_schedule(struct ospf6_area * oa, unsigned int hostnum){  if(oa->thread_spf_calculation)    return;  struct ospf6_area_hostnum * ah = calloc(1, sizeof(struct ospf6_area_hostnum));  ah->oa = oa;  ah->hostnum = hostnum;  oa->thread_spf_calculation =    thread_add_event(master, ospf6_spf_calculation_thread, ah, 0);}
开发者ID:ecks,项目名称:harry,代码行数:13,


示例25: tcp_check_thread

inttcp_check_thread(thread_t * thread){	SOCK *sock_obj = THREAD_ARG(thread);	int ret = 1;	sock_obj->status =	    tcp_socket_state(thread->u.fd, thread, req->addr_ip, req->addr_port,			     tcp_check_thread);	switch (sock_obj->status) {	case connect_error:		DBG("Error connecting server [%s:%d]./n",		    inet_ntop2(req->addr_ip), ntohs(req->addr_port));		thread_add_terminate_event(thread->master);		return -1;		break;	case connect_timeout:		DBG("Timeout connecting server [%s:%d]./n",		    inet_ntop2(req->addr_ip), ntohs(req->addr_port));		thread_add_terminate_event(thread->master);		return -1;		break;	case connect_success:{			if (req->ssl)				ret = ssl_connect(thread);			if (ret) {				/* Remote WEB server is connected.				 * Unlock eventual locked socket.				 */				sock_obj->lock = 0;				thread_add_event(thread->master,						 http_request_thread, sock_obj, 0);			} else {				DBG("Connection trouble to: [%s:%d]./n",				    inet_ntop2(req->addr_ip),				    ntohs(req->addr_port));				if (req->ssl)					ssl_printerr(SSL_get_error						     (sock_obj->ssl, ret));				sock_obj->status = connect_error;				return -1;			}		}		break;	}	return 1;}
开发者ID:Sir168,项目名称:dsnat,代码行数:51,


示例26: smtp_connect

/* connect remote SMTP server */static voidsmtp_connect(smtp_t * smtp){	enum connect_result status;	if ((smtp->fd = socket(global_data->smtp_server.ss_family, SOCK_STREAM, IPPROTO_TCP)) == -1) {		DBG("SMTP connect fail to create socket.");		free_smtp_all(smtp);		return;	}	status = tcp_connect(smtp->fd, &global_data->smtp_server);	/* Handle connection status code */	thread_add_event(master, SMTP_FSM[status].send, smtp, smtp->fd);}
开发者ID:MaheshWaidande,项目名称:keepalived,代码行数:17,


示例27: oneway_received

int oneway_received(struct thread * thread){  struct ospf6_neighbor * on;  on = (struct ospf6_neighbor *)THREAD_ARG(thread);  if(on->state < OSPF6_NEIGHBOR_TWOWAY)    return 0;  if(IS_OSPF6_SIBLING_DEBUG_NEIGHBOR)    zlog_debug("Neighbor Event %s: *1Way-Received*", on->name);  ospf6_neighbor_state_change(OSPF6_NEIGHBOR_INIT, on);  thread_add_event(master, neighbor_change, on->ospf6_if, 0);  return 0;}
开发者ID:ecks,项目名称:harry,代码行数:17,


示例28: ospf6_interface_state_change

static voidospf6_interface_state_change (u_char next_state, struct ospf6_interface *oi){  u_char prev_state;  prev_state = oi->state;  oi->state = next_state;  if (prev_state == next_state)    return;  /* log */  if (IS_OSPF6_DEBUG_INTERFACE)    {      zlog_debug ("Interface state change %s: %s -> %s", oi->interface->name,		  ospf6_interface_state_str[prev_state],		  ospf6_interface_state_str[next_state]);    }  if ((prev_state == OSPF6_INTERFACE_DR ||       prev_state == OSPF6_INTERFACE_BDR) &&      (next_state != OSPF6_INTERFACE_DR &&       next_state != OSPF6_INTERFACE_BDR))    ospf6_leave_alldrouters (oi->interface->ifindex);  if ((prev_state != OSPF6_INTERFACE_DR &&       prev_state != OSPF6_INTERFACE_BDR) &&      (next_state == OSPF6_INTERFACE_DR ||       next_state == OSPF6_INTERFACE_BDR))//    ospf6_join_alldrouters (oi->interface->ifindex);      thread_add_event (master, rospf6_join_alldrouters_send, oi, 0);  OSPF6_ROUTER_LSA_SCHEDULE (oi->area);  if (next_state == OSPF6_INTERFACE_DOWN)    {      OSPF6_NETWORK_LSA_EXECUTE (oi);      OSPF6_INTRA_PREFIX_LSA_EXECUTE_TRANSIT (oi);      OSPF6_INTRA_PREFIX_LSA_SCHEDULE_STUB (oi->area);    }  else if (prev_state == OSPF6_INTERFACE_DR ||           next_state == OSPF6_INTERFACE_DR)    {      OSPF6_NETWORK_LSA_SCHEDULE (oi);      OSPF6_INTRA_PREFIX_LSA_SCHEDULE_TRANSIT (oi);      OSPF6_INTRA_PREFIX_LSA_SCHEDULE_STUB (oi->area);    }}
开发者ID:ecks,项目名称:sis-is,代码行数:46,


示例29: smux_event

voidsmux_event (enum smux_event event, int sock){  switch (event)    {    case SMUX_SCHEDULE:      smux_connect_thread = thread_add_event (master, smux_connect, NULL, 0);      break;    case SMUX_CONNECT:      smux_connect_thread = thread_add_timer (master, smux_connect, NULL, 10);      break;    case SMUX_READ:      smux_read_thread = thread_add_read (master, smux_read, NULL, sock);      break;    default:      break;    }}
开发者ID:Quagga,项目名称:people-jcollie,代码行数:18,



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


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