小编iAd*_*nct的帖子

将异常抛出到另一个线程中

这与任何涉及从另一个线程捕获一个线程中抛出的异常的问题都不是重复的。

我有生成一个线程的代码,它会关闭并执行自己的操作。

在将来的某个时刻,我希望能够在另一个线程中抛出两个异常之一(即terminateinterrupt)。

一种方法是共享一个变量,并让另一个线程定期检查它是否应该被终止。我的偏好是没有它检查的约束(一些代码将独立于执行线程的库,并且不会被编写来检查)。

在我理想的解决方案中,您可能最终会遇到这样的情况:在调试时,您可能会发现auto i = 1 + 1抛出异常,因为另一个线程告诉您的线程抛出异常,而这正是您当时恰好所在的行

我有办法做到这一点吗?

multithreading posix exception c++11

6
推荐指数
1
解决办法
6660
查看次数

Javascript scrollIntoView 仅在直接父级中

如何scrollIntoView仅滚动直接父级(例如div使用overflow-y: scroll;)而不滚动整个页面?

我有一个网络界面,我正在为一个内部的、非常具体的目的而制作。在我的页面上的其他元素是div具有指定高度,overflow-yscroll

我有数据会定期出现在这个区域,我希望它总是滚动到底部(例如某个远程服务器上子进程的控制台输出)。

如果我使用scrollIntoView,它会滚动overflow-y div..... 但也会滚动整个页面。

在带有大显示器的计算机上,这不是问题,但在我的屏幕较小的笔记本电脑上,它还会滚动整个窗口,这绝对不是预期/期望的行为。

html javascript

5
推荐指数
2
解决办法
4795
查看次数

如果对象已经被压缩,为什么 git pack-objects 会“压缩对象”?

据我了解,存储在 [bare] git 存储库中的松散对象是经过压缩的...

...那么为什么git pack-objects(以及所有相关repackgc命令)有一个非常长的 Compressing objects阶段?不应该只是复制它们吗?

例如:

objects/75/f0debd8e421ab3f9cc8b6aeb539796ae86b705已经压缩了。在包文件中,这个文件应该在它的头之后立即按字节复制到该位置,因为包文件格式指定压缩数据去那里......那么如果它已经被压缩,为什么需要重新压缩?

如果它可能试图使用不同的压缩...我怎么能告诉它不要,而只是按原样使用文件?

更新说明:

  • 我已经设置了设置和选项,以便有效地不发生增量压缩。Delta 压缩对于存储 2 TB 的.NEF图像没有用。

git

2
推荐指数
1
解决办法
280
查看次数

手动构建的GCC和Clang;Clang 查看系统 C++ 路径,而不是我的 GCC 路径

问题

如何让[我的自定义安装] clang 查看 C++ 标头的正确位置(即我的 gcc 自定义安装)?

系统

我目前正在使用所有默认库的 RHEL 6 计算机。

在非系统目录中,我[成功]编译了 mpc、mpfr、gmp、cmake、python、gcc(4.9.3 和 8.1.0)和 clang(5.0.0 使用 gcc 4.9.3 和 6.0.0使用 gcc 8.1.0)。

gcc 配置为--prefix=... --with-gmp=... --with-mpfr=... --with-mpc=... --disable-multilib

gcc 的(及其所有依赖项)bin 目录被添加到PATH,其 lib/lib64 目录被添加到LD_LIBRARY_PATH,CC/CXX 分别设置为 [my] gcc/g++ 。

然后 clang 配置了cmake ../llvm -DCMAKE_INSTALL_PREFIX=... -DCMAKE_BUILD_TYPE=Release -DLLDB_DISABLE_LIBEDIT=True -DCMAKE_C_COMPILER=${CC} -DCMAKE_CXX_COMPILER=${CXX}. 请注意,我设置了 CMAKE_C_COMPILER/CMAKE_CXX_COMPILER,尽管我不应该这样做,因为其他一些答案说他们通过这样做修复了它,我想也许发生了一些奇怪的事情,但这并没有解决它。

问题

如果我编译这个测试文件:

#include <atomic>

int main ( int , char const** )
{
    std::atomic<int> i (0) ;
    i.fetch_add ( 2 ) ; …
Run Code Online (Sandbox Code Playgroud)

gcc clang gnu-toolchain

1
推荐指数
1
解决办法
2035
查看次数

标签 统计

c++11 ×1

clang ×1

exception ×1

gcc ×1

git ×1

gnu-toolchain ×1

html ×1

javascript ×1

multithreading ×1

posix ×1