📄 testline.c
字号:
/* For DWXX */ arryLen = LoadData(TYPE_OF_DWXX,GetCount( TYPE_OF_DWXX) ); printf("*************************First time Load data****************************\n"); /* Debug */printf(" Address of the address array head is %lX.\n",loadedMesg.pLocInfo ); printf("Enter Sort now.\n"); /* Debug */Sort( SORT_BY_ADDRESS, loadedMesg.pLocInfo, arryLen ); queFilter.DESID = 46; queFilter.sTime.hour=12; queFilter.sTime.min=0; queFilter.sTime.sec=0; queFilter.eTime.hour=40; queFilter.eTime.min=50; queFilter.eTime.sec=32; //loadedMesg.pLocInfo = (LOCINFO **)Filtrate( countDWXX, BY_LOCADDRSS,queFilter, loadedMesg.pLocInfo ); //BY_LOCTIME //loadedMesg.pLocInfo = (LOCINFO **)Filtrate( countDWXX, BY_BOTH,queFilter, loadedMesg.pLocInfo ); //PrintForTest( loadedMesg.pLocInfo ); //Delete( TYPE_OF_DWXX, SINGLEMODE, 2, (void **)loadedMesg.pLocInfo); UnloadData( TYPE_OF_DWXX ); sleep(2); LoadData(TYPE_OF_DWXX,GetCount( TYPE_OF_DWXX) ); printf("*************************Second time Load data****************************\n"); //printf("******************Delete mutiple mode************************\n");//for SendDatavoid TestMainServ( void )//int main(int argc, char **argv)
{
int i,fd,arryLen; pthread_t tid_produce[MAXNTHREADS], tid_Consume; pthread_mutexattr_t nready_mattr; pthread_mutexattr_t curMesg_mattr; pthread_condattr_t condattr; MYSHM *myshmPtr; struct sched_param param; int priority; int newPrio=20; //if (argc != 2) // err_quit("usage: ./MainServ <name> "); /* open and map shared memory */ //shm_unlink(argv[1]); shm_unlink("knight"); fd = shm_open("knight", O_RDWR | O_CREAT | O_EXCL, FILE_MODE); myshmPtr = mmap(NULL, sizeof( MYSHM ), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); ftruncate(fd, sizeof( MYSHM )); close(fd); myshmPtr->nready = 0 ; /* Use the default properties to initial the mutex lock during the time of data operation */ Pthread_mutex_init(&countDW_Mutex,NULL); Pthread_mutex_init (&(fLock.DW_FLOCK),NULL); Pthread_mutex_init (&(fLock.DWtmp1_FLOCK),NULL); Pthread_mutex_init (&(fLock.DWtmp2_FLOCK),NULL); Pthread_mutex_init(&countTXINDEX_Mutex,NULL); Pthread_mutex_init(&countTXMAIN_Mutex,NULL); Pthread_mutex_init (&(fLock.TXINDEX_FLOCK),NULL); Pthread_mutex_init (&(fLock.TXtmp1_FLOCK),NULL); Pthread_mutex_init (&(fLock.TXtmp2_FLOCK),NULL); /* Initial the attribute of mutex and cond to be shared between the main progress and Daemon */ Pthread_mutexattr_init(&curMesg_mattr ); Pthread_mutexattr_setpshared( &curMesg_mattr,PTHREAD_PROCESS_SHARED ); Pthread_mutex_init(&myshmPtr->curMesg_mutex,&curMesg_mattr); Pthread_mutexattr_destroy( &curMesg_mattr); Pthread_mutexattr_init( &nready_mattr ); Pthread_mutexattr_setpshared( &nready_mattr,PTHREAD_PROCESS_SHARED ); Pthread_mutex_init(&myshmPtr->nready_mutex,&nready_mattr); Pthread_mutexattr_destroy( &nready_mattr); Pthread_condattr_init( &condattr); Pthread_condattr_setpshared( &condattr,PTHREAD_PROCESS_SHARED ); pthread_cond_init(&myshmPtr->cond,&condattr); Pthread_condattr_destroy( &condattr); /*初始化属性*/ pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED); pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); memset( &tid_DatProcess, 0, sizeof(tid_DatProcess) ); /* INITQUEUE( INBOX); INITQUEUE( OUTBOX); Pthread_create(&tid_Consume, &attr, Consume, (void *)myshmPtr); sleep(5 ); loadArg.sType = INBOX; loadArg.mesgType = TYPE_OF_TXXX; loadArg.mesgCount = GetCount( TYPE_OF_TXXX); CheckTidCount(); Pthread_create( &tid_DatProcess[tidCount], &attr, LoadData, NULL);*/ //LoadData(INBOX, TYPE_OF_TXXX,GetCount( TYPE_OF_TXXX) ); printf("Current total number of mesg is %d,Unread ones are %d\n",loadedMesg.countOfMesg,loadedMesg.countOfUnread); printf("*************************First time Load data****************************\n"); /* Debug */printf(" Address of the address array head is %lX.\n",loadedMesg.pCommInfo ); queFilter.srcID = 2606; /* Test Filatrate */ //loadedMesg.pCommInfo=(COMMINFO **)Filtrate(TYPE_OF_TXXX,loadedMesg.countOfMesg, BY_LOCADDRSS,queFilter, (void **)loadedMesg.pCommInfo ); //loadedMesg.pCommInfo=(COMMINFO **)Filtrate(TYPE_OF_TXXX,arryLen, BY_NEWEST3,queFilter, (void **)loadedMesg.pCommInfo ); //PrintForTest( NULL ,loadedMesg.pCommInfo ); //Delete( INBOX, TYPE_OF_TXXX, SINGLEMODE, 2, (void **)loadedMesg.pCommInfo); //Delete( INBOX, TYPE_OF_TXXX, MUTIPLEMODE, 3, (void **)loadedMesg.pCommInfo); //UnloadData( INBOX, TYPE_OF_TXXX );/* sleep(5); loadArg.sType = INBOX; loadArg.mesgType = TYPE_OF_TXXX; loadArg.mesgCount = GetCount( TYPE_OF_TXXX); CheckTidCount(); Pthread_create( &tid_DatProcess[tidCount], &attr, LoadData, NULL);*/ //LoadData( INBOX, TYPE_OF_TXXX,GetCount( TYPE_OF_TXXX) ); printf("*************************Second time Load data****************************\n"); //printf("******************Delete mutiple mode************************\n"); //sleep(5); exit(0);
}/* Test Filatrate */ //loadedMesg.pCommInfo=(COMMINFO **)Filtrate(TYPE_OF_TXXX,loadedMesg.countOfMesg, BY_LOCADDRSS,queFilter, (void **)loadedMesg.pCommInfo ); //loadedMesg.pCommInfo=(COMMINFO **)Filtrate(TYPE_OF_TXXX,arryLen, BY_NEWEST3,queFilter, (void **)loadedMesg.pCommInfo ); //Delete( INBOX, TYPE_OF_TXXX, SINGLEMODE, 2, (void **)loadedMesg.pCommInfo); //Delete( INBOX, TYPE_OF_TXXX, MUTIPLEMODE, 3, (void **)loadedMesg.pCommInfo); //sleep(5); //LoadData( INBOX, TYPE_OF_TXXX,GetCount( TYPE_OF_TXXX) );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -