C 检查线程是否返回的方法?

C 检查线程是否返回的方法?,c,multithreading,pthreads,status,C,Multithreading,Pthreads,Status,我的主程序所有c代码都以单独的线程pthread_create启动服务器函数。 此函数等待传入的输入并对其执行某些操作。同时,主程序也会继续做一些事情。主程序不会等到服务器功能完成其工作后再继续 现在有可能在服务器函数套接字问题中发生错误。。。。然后,服务器函数返回一个特定值,例如-1。 如果是这种情况,我想中止整个程序的执行 我该怎么办 我唯一的想法是启动第二个线程,不断验证服务器线程在发生错误时更改的全局变量。然后,第二个线程处理程序中止 我还有其他选择吗 您可以使用pthread_join

我的主程序所有c代码都以单独的线程pthread_create启动服务器函数。 此函数等待传入的输入并对其执行某些操作。同时,主程序也会继续做一些事情。主程序不会等到服务器功能完成其工作后再继续

现在有可能在服务器函数套接字问题中发生错误。。。。然后,服务器函数返回一个特定值,例如-1。 如果是这种情况,我想中止整个程序的执行

我该怎么办

我唯一的想法是启动第二个线程,不断验证服务器线程在发生错误时更改的全局变量。然后,第二个线程处理程序中止

我还有其他选择吗


您可以使用pthread_join等待父线程中的子线程终止。
或者pthread_cond_等待实现类似的东西。

你能提供一些代码吗?看这可能会有帮助为什么服务器线程不能中止程序本身?是的-就像@jlx说的,只需从检测到严重错误的线程调用“TerminateProcess”API,或者在操作系统上调用任何它。我的主程序是用Fortran编写的。在某些时候,它调用一个c函数,该函数通过iso_c_绑定启动服务器耦合。我想最好的解决方案是在Fortran主程序中编写一些程序退出函数,以防服务器函数出错。感谢jxh和Martin James。我知道提供一些伪代码总是更好的,但我认为这在这里没有多大意义。至少我不知道该发布什么。你好,vinayak,我认为这不起作用,因为我不希望父线程等待子线程。我只希望它在子线程出错时停止。@user2504694然后在遇到错误时立即从调用子线程的函数返回。