【发布时间】:2022-09-24 10:15:32
【问题描述】:
我的项目涉及一个插件,以及一个用于所述插件的 GUI,该插件被隔离到一个单独的进程中。我共享的数据可能会被 GUI 更新,当它更新时,它应该由插件处理。
为此,我正在考虑将其放入我的共享内存块中:
std::atomic_bool event_flag;
// insert mutex...
some_data_struct data;
本质上,当 GUI 想要更改数据时,它会执行以下操作:
// acquire mutex
// write data...
// release mutex
event_flag = true;
event_flag.notify_one();
然后插件执行以下操作:
event_flag.wait(true);
event_flag = false;
// acquire mutex
// read data...
// release mutex
-
您将如何在共享内存中创建对象以使它们在两个进程中都有效?我想到了新的放置,但我不知道如果两个进程在同一个内存块上尝试这个会发生什么。如果原子是\"隐式生命周期类型\"en.cppreference.com/w/cpp/named_req/ImplicitLifetimeType
标签: c++ synchronization