⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wdtpsx.c

📁 extremeDB s sample code,useful for you
💻 C
字号:
/***************************************************************** *                                                               * *  wdtpsx.c                                                     * *                                                               * * This file is a part of the eXtremeDB-HA Application Framework * *   It demonstrates McObject High Availabitity support and      *   * explains how to work with it.                                 * *                                                               *  ***************************************************************** *  Copyright (c) 2001-2006 McObject LLC                         *  *  All Rights Reserved                                          * *****************************************************************//* * ++ *  * PROJECT:   Ha Framework * * SUBSYSTEM: HA support * * MODULE:    wdtpsx.c * * ABSTRACT:  WATCHDOG asynchron processing procedures for HA support * * * VERSION:   1.0 * * HISTORY: *            1.0- 1 SS     19-Oct-2003 Created it was * * -- */#if !defined(_WIN32) && !defined(_QNX) && !defined(_INTEGRITY) && !defined(_ECOS)#include   "platform.h"#ifndef _VXWORKS#include   <sys/time.h>#else#include   <sys/times.h>#endif#include   <signal.h>#include   <time.h>#include   "watchdog.h"#ifndef _QNXint mco_create_watchdog( long msec, MCO_PWATCHDOG proc){   struct sigaction 	sa;  struct itimerval		time;        sa.sa_handler	=	(void (*) (int))proc;        sa.sa_flags	=	0;        sigemptyset(&sa.sa_mask);        sigaddset(&sa.sa_mask,SIGPIPE);   	sigaction( SIGALRM, &sa, NULL);        time.it_interval.tv_sec		=	msec/1000;        time.it_interval.tv_usec	= (msec%1000)*1000;// 		        time.it_value.tv_sec		=	time.it_interval.tv_sec;        time.it_value.tv_usec		=	time.it_interval.tv_usec;        return	setitimer( ITIMER_REAL, &time, NULL );}void mco_kill_watchdog( long msec, MCO_PWATCHDOG proc){  struct itimerval		time;		time.it_interval.tv_sec		=	0;		time.it_interval.tv_usec	= 0;// 				time.it_value.tv_sec		=	0;		time.it_value.tv_usec		=	0;		setitimer( ITIMER_REAL, &time, NULL );}#elsestatic timer_t timerid;    int mco_create_watchdog( long msec, MCO_PWATCHDOG proc){  struct sigaction 	sa;  struct itimerspec	time;  static struct sigevent	evt;  int rc;		sa.sa_handler	=	(void (*) (int))proc; 		sa.sa_flags	=	0; 		sigemptyset(&sa.sa_mask); 		sigaddset(&sa.sa_mask,SIGPIPE);   	sigaction( SIGALRM, &sa, NULL);		SIGEV_SIGNAL_INIT( &evt, SIGALRM);		if(( rc = timer_create( CLOCK_REALTIME, &evt, &timerid ))<0)	return rc;                   		time.it_interval.tv_sec		=	msec/1000;		time.it_interval.tv_nsec	= (msec%1000)*10000;// 				time.it_value.tv_sec		=	time.it_interval.tv_sec;		time.it_value.tv_nsec	=	time.it_interval.tv_nsec; 				return	timer_settime( timerid, 0, &time,  NULL );}void mco_kill_watchdog( long msec, MCO_PWATCHDOG proc){  struct itimerspec	time;		time.it_interval.tv_sec		=	0;		time.it_interval.tv_nsec	= 0;// 				time.it_value.tv_sec		=	0;		time.it_value.tv_nsec	=	0;		timer_settime( timerid, 0, &time,  NULL );}#endif#endif /* !defined(_WIN32) && !defined(_QNX)  && !defined(_INTEGRITY) */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -