作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
NCurses 似乎是一个流行的库。它的弱点之一是它不是线程安全的。将共享资源包装在互斥锁中应该不难。
是否有特定原因,为什么没有人启动线程安全分支?(法律问题,引入平台依赖性,......)
编辑:我指的不是 use_screen 或 use_window 函数。这些显然要求用户更改其基于 NCurses 的代码。应该可以在 NCurses 本身的共享资源中添加互斥锁,并且所有访问函数在对窗口执行某些操作之前获取互斥锁。我在 NCurses 中想象这样的事情:
#if __cplusplus >= 201103L
#include <mutex>
#define THREADSAFE
#endif
...
#ifdef THREADSAFE
std::recursive_mutex mxCurscr;
#endif
...
int doupdate(void)
{
#ifdef THREADSAFE
mxCurscr.lock();
#endif
... // <-- Access the screen here.
#ifdef THREADSAFE
mxCurscr.unlock()
#endif
}
那么,问题在哪里呢?
最佳答案
它已经完成了(在 ncurses 5.7 中,发布了 November 2008 ),但用得不多。查看curs_threads
例如手册页。它不是默认配置中的功能,因为它
关于thread-safety - 为什么没有人编写 ncurses 库的线程安全分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29910562/
使用 Git 或 Mercurial,当您进行克隆或 pull 时,您如何知道没有人 checkin 文件(推送)?重要的是: 1) 您永远不知道它处于不一致状态,因此当您的代码处于不一致状态时,您尝
我是一名优秀的程序员,十分优秀!