小编mbe*_*lls的帖子

如果在其他线程仍在运行时调用exit(0)会发生什么?

假设一个程序有几个线程:t1,t2等.这些是使用pthreads.t2线程坐在循环读取流中并访问具有静态存储持续时间的变量.

现在假设t1调用exit(0).

(进一步的细节:我有一个程序在基于unix的系统上执行此操作,并使用g ++编译.程序似乎偶尔会在关闭时崩溃,堆栈跟踪指示静态变量无效.)

  • 线程在C++对象销毁之前被杀死了吗?

  • C++是不是意识到线程,所以这些线程一直运行直到C++清理完成?

  • 如果SIGTERM处理程序在继续之前首先关闭或终止线程,还是会自动执行此操作?

c++ pthreads

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

如何使用-Werror制作"cc1plus:错误:无法识别的命令行选项"警告?

我有一个使用gcc 4.6.3的项目,我正在尝试迁移到4.8.2.但是,它需要在4.6上编译一段时间.它正在使用-Werror,关闭了一些特定的错误.要使用增强1.55和gcc 4.8,我需要添加-Wno-unused-local-typedefs.问题是,使用-Werror,gcc 4.6会发出此错误:

cc1plus: error: unrecognized command line option "-Wno-unused-local-typedefs" [-Werror]
Run Code Online (Sandbox Code Playgroud)

关于警告选项gcc文档没有迹象表明此特定警告可以被明确地视为警告而不是错误.有没有办法让4.6将此视为警告?

c++ gcc warnings command-line-arguments

6
推荐指数
0
解决办法
4679
查看次数

如何在Pig Latin中加载包含JSON字段的TSV?

我正在尝试加载一个主要是TSV(制表符分隔值)的模式的文件,但其中一个字段是JSON值.猪拉丁似乎有TabL(或其他)分隔值的TextLoader,以及JSON的JsonLoader ...

特别是,每行数据看起来像:

date\tevent_name\tevent_details\n
Run Code Online (Sandbox Code Playgroud)

其中event_details是JSON格式的字符串.其他的只是char数组.

加载此数据的最简单方法是什么?

注意:我正在使用Pig ver 0.11.1.

json apache-pig tsv

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

如何删除本地 git 存储库中的特定提交?

我的本地存储库包含以下提交:

A ---- B ---- C ---- D ---- E
        \
         1 ---- 2
          \    /
           1.1 
Run Code Online (Sandbox Code Playgroud)

字母更改位于远程存储库上。更改 1、1.1 和 2 是我不再需要的本地存储库中的临时更改。当我在 B 上创建一个包含未提交更改的存储时,这些可能是自动创建的;该存储已被删除。我想让历史变得不那么复杂,这就是为什么我想摆脱这些。

我可以通过清除本地存储库并再次克隆远程存储库来清楚地摆脱这些,但这似乎很严厉。我想保留一个不在远程仓库中的本地分支。

从我到目前为止所读到的内容来看,讨论的重点是如何将多个提交压缩为一个。我还没有找到任何关于删除提交对象的信息。我还尝试过“git prune <提交2的哈希值>”,但它没有做任何事情。

如何删除提交对象 1、1.1 和 2?

提前致谢。

git git-commit

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