我正在使用C++,并且我正在使用boost库的mutex、recursive_mutex和其他同步对象。
我经常有以下模式:
void RebuildAll()。这个函数会做很多内部的改变。
void DoSomethingA()。使用RebuildAll所建立的东西来完成一些工作。
void DoSomethingB()。使用RebuildAll所建立的东西来完成一些工作。
void DoSomethingC()。使用RebuildAll所建立的东西来完成一些工作。
...
这些函数可以从不同的线程中调用。我想同时执行DoSomethingA()、DoSomethingB()和DoSomethingC()。但是当调用RebuildAll()时,我需要确保这些DoSomething函数没有被执行。
有什么东西可以帮助我保护这些函数吗?
我经常有以下模式:
void RebuildAll()。这个函数会做很多内部的改变。
void DoSomethingA()。使用RebuildAll所建立的东西来完成一些工作。
void DoSomethingB()。使用RebuildAll所建立的东西来完成一些工作。
void DoSomethingC()。使用RebuildAll所建立的东西来完成一些工作。
...
这些函数可以从不同的线程中调用。我想同时执行DoSomethingA()、DoSomethingB()和DoSomethingC()。但是当调用RebuildAll()时,我需要确保这些DoSomething函数没有被执行。
有什么东西可以帮助我保护这些函数吗?