clang线程安全分析docs和paper暗示可以指示特定函数仅由特定线程调用。来自论文:
#include "ThreadRole.h"
ThreadRole InputThread;
ThreadRole GUIThread;
class Widget {
public :
virtual void onClick() REQUIRES(InputThread);
virtual void draw() REQUIRES(GUIThread);
};
class Button : public Widget {
public :
void onClick() override {
depressed = true;
draw() ; // WARNING!
}
};
但是,这两个文档都没有说明您是如何实际注释ThreadRole
来实现此目的的。 ThreadRole
必须具备什么才能使其发挥作用?
答案 0 :(得分:0)
相关:
https://insights.sei.cmu.edu/sei_blog/2014/10/thread-safety-analysis-in-c-and-c.html
CREATE OR REPLACE trigger LimitTable after insert on GAMES
as
declare @GCount int
select @GCount = SELECT COUNT(*) FROM GAMES.DEVELOPERID WHERE NEW.DEVEOPERID=GAMES.DEVELOPERID
from GAMES
if @GCount >=5
begin
rollback
end
...