当前位置: 技术问答>linux和unix
急:如何关闭此socket?
来源: 互联网 发布时间:2015-06-21
本文导语: while(1) { rs = accept(socket, ....); if ( pthread_create(....) ) ...... } 问:在上面程序中,如何退出循环呢? | if(setjmp(position)==1) goto my_qu...
while(1)
{
rs = accept(socket, ....);
if ( pthread_create(....) )
......
}
问:在上面程序中,如何退出循环呢?
{
rs = accept(socket, ....);
if ( pthread_create(....) )
......
}
问:在上面程序中,如何退出循环呢?
|
if(setjmp(position)==1)
goto my_quit;
signal(SIGIT,catch());/*catch()函数中含有longjmp(position,1)*/
while(1)
{
rs = accept(socket, ....);
if ( pthread_create(....) )
......
}
my_quit:
goto my_quit;
signal(SIGIT,catch());/*catch()函数中含有longjmp(position,1)*/
while(1)
{
rs = accept(socket, ....);
if ( pthread_create(....) )
......
}
my_quit:
|
如果在一个线程中,很简单阿
不要用while( 1 )
设置一个全局的信号变量terminate,用while ( terminate )
通过主进程或其他线程控制terminate,来控制该线程
不要用while( 1 )
设置一个全局的信号变量terminate,用while ( terminate )
通过主进程或其他线程控制terminate,来控制该线程
|
你可以捕捉SIGHUP,自定义它的处理程序做清理工作。想重起的时候kill -HUP pid不就行了