最近发现PlatformServer.exe的cpu占用几乎一直保持在100%
.exe和相关.dll加上debug info,然后用vs remote debugger远程调试
用Process Explorer可看到哪个线程占用的cpu比较高
最终发现是mbedtls相关类在一个循环中
do
{
auto ret=xxxx;
if (ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE)
{
continue;
}
...
}while...
在continue之前增加ShellTool::Sleep(1) 临时解决
这个是专用于tls的工作looper,所以不会影响其他looper
以后有时间了再把tls相关功能改为全异步非阻塞操作