rtprecvthreadfcn.c

来自「linux环境下用纯c写的RTP协议的通用开发库」· C语言 代码 · 共 53 行

C
53
字号
/*------------------------------------------------------------------------- * rtprecvthreadfcn.c - rtprecvthreadfcn *------------------------------------------------------------------------- */#include <rtp.h>#include <pthread.h>#include <signal.h>#include <sys/time.h>#include <util.h>/*------------------------------------------------------------------------ * rtprecvthreadfcn - loop to receive RTP packets. *------------------------------------------------------------------------ */voidrtprecvthreadfcn(struct session *psn){	/*	 * Initialize by setting signal handler, then signal condition to	 * indicate that initialization is complete. This code prevents	 * rtpctl from sending a SIGTERM *before* the handler is installed.	 */	pthread_mutex_lock(&psn->sn_rtpthrmutex);	signal(SIGTERM, nullfcn);	psn->sn_rtpthrstat = THR_RUNNING;	pthread_cond_signal(&psn->sn_cond);	pthread_mutex_unlock(&psn->sn_rtpthrmutex);	while(TRUE) {		rtprecv(psn);		/*		 * Check if a SIGTERM has been received.		 * If so, return.		 */		pthread_mutex_lock(&psn->sn_rtpthrmutex);		if (psn->sn_rtpthrstat == THR_TERMINATE) {			psn->sn_rtpthrstat = THR_NOTRUNNING;			pthread_cond_signal(&psn->sn_cond);			pthread_mutex_unlock(&psn->sn_rtpthrmutex);			return;		}		pthread_mutex_unlock(&psn->sn_rtpthrmutex);	}}

⌨️ 快捷键说明

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