Multithreading 如何从我无法控制的线程捕获内部错误?

Multithreading 如何从我无法控制的线程捕获内部错误?,multithreading,exception,websocket,racket,Multithreading,Exception,Websocket,Racket,我使用的是racket的web套接字库,我的用例要求保持永久连接,所以我经常在服务器关闭一个连接时建立新的连接,问题是在一段时间后,服务器会自动引发一个内部错误,表示试图重新安排死线程,但是这个异常是从另一个线程中提出的,它不是主要的,我想捕捉来自其他线程的错误/异常,我没有直接的控制,因为我真的没有时间去破解和修复图书馆里发生的任何事情。问题是所有线程都共享相同的地址空间,这意味着如果一个线程出现错误,它也可能(并且经常会)破坏所有其他线程的状态,最终导致错误行为、死锁、崩溃等。唯一的解决方案

我使用的是racket的web套接字库,我的用例要求保持永久连接,所以我经常在服务器关闭一个连接时建立新的连接,问题是在一段时间后,服务器会自动引发一个内部错误,表示试图重新安排死线程,但是这个异常是从另一个线程中提出的,它不是主要的,我想捕捉来自其他线程的错误/异常,我没有直接的控制,因为我真的没有时间去破解和修复图书馆里发生的任何事情。问题是所有线程都共享相同的地址空间,这意味着如果一个线程出现错误,它也可能(并且经常会)破坏所有其他线程的状态,最终导致错误行为、死锁、崩溃等。唯一的解决方案是进入并修复底层错误,或者重写应用程序以使用单独的进程而不是线程(因为每个进程都有自己的内存空间,您可以保证进程A中的bug不会损坏进程B)嗨,谢谢您的回答,问题是作为一个用户,我不使用线程,但库在内部使用线程来处理连接,
;第1行(定义ws-executor(生成遗嘱执行人));第2行(void(thread(lambda()(let loop()(将执行ws-executor)(loop‘‘)’))
错误由此产生,因此我想我被卡住了。你能联系库的作者并询问他们吗?也许他们能帮上忙。我会的,再次谢谢你,法国人。