Closed Numendacil closed 2 years ago
项目里所用的httplib.h版本存在线程安全问题(不同线程同时调用send()会导致socket创建出现问题,见 #492),而原仓库在commit e022b8b给send函数加了锁,从而避免了这一问题(见 #679)
(不过在多个线程里共用一个HttpClient感觉是不是也不太好?我觉得可能更好的方式是在程序调用SendMessage时不直接发送请求而是先把请求push到一个消息队列里,然后再MiraiBot单独开一个线程专门负责消息队列的处理。这样其实也就不用关心第三方库是否实现了thread-safety了
居然还有这种问题,我欠考虑了。 加一个消息队列的做法是值得考虑的,因为我最近也想用什么方法控制发送消息的频率。 这几天会弄上去的。
项目里所用的httplib.h版本存在线程安全问题(不同线程同时调用send()会导致socket创建出现问题,见 #492),而原仓库在commit e022b8b给send函数加了锁,从而避免了这一问题(见 #679)
(不过在多个线程里共用一个HttpClient感觉是不是也不太好?我觉得可能更好的方式是在程序调用SendMessage时不直接发送请求而是先把请求push到一个消息队列里,然后再MiraiBot单独开一个线程专门负责消息队列的处理。这样其实也就不用关心第三方库是否实现了thread-safety了