小编Tej*_*ula的帖子

pthread_once() 是如何在内部实现的?

我们在 pthread_once() 中使用任何锁定机制吗?在线程安全单例类中使用 pthread_once() 而不是使用 pthread_mutex_lock() 和 pthread_mutex_unlock() 的成本是多少?

multithreading posix pthreads

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

更改 docker 容器内的 /proc/sys/kernel/core_pattern 文件

如何/proc/sys/kernel/core_pattern在没有特权模式的情况下更改docker 容器内的文件?是否有任何标志要传递给docker daemondocker run与之相关的任何东西Dockerfile

linux privileges linux-kernel docker dockerfile

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

致命:在 C++ 中不会重新抛出异常

我试图了解 pthread_cancel 在 c++ 中的 Linux 环境中的用法。但我遇到了运行时问题。

class A {
    public:
        A(){cout<<"constructor\n";}
        ~A(){cout<<"destructor\n";}
};
void* run(void* data) {
    A a;
    while(1) {
        //sleep(1);
        cout<<"while\n";
    }
}
int main() {
    pthread_t pid;
    pthread_create(&pid,NULL,run,NULL);
    sleep(2);;
    pthread_cancel(pid);
    cout<<"Canceled\n";
    pthread_exit(0);
}
Run Code Online (Sandbox Code Playgroud)

输出:

constructor 
while 
while 
...
while 
while 
Canceled 
FATAL: exception not rethrown 
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

核心文件分析:

(gdb) where
#0  0x00000036e8c30265 in raise () from /lib64/libc.so.6
#1  0x00000036e8c31d10 in abort () from /lib64/libc.so.6
#2  0x00000036e9c0d221 in unwind_cleanup () from /lib64/libpthread.so.0
#3  0x00000036fa69042b in std::basic_ostream<char, …
Run Code Online (Sandbox Code Playgroud)

c++ linux multithreading

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

分号分隔列表到 cmake 文件中的 cmake 命令

我正在我的应用程序中构建亚马逊的 aws-sdk-cpp。所以我从aws-sdk-cpp.tar.gz文件中提取内容并作为 ExternalProject 运行。

ExternalProject_Add(awssdk
    PREFIX DIR
    URL ${CMAKE_CURRENT_SOURCE_DIR}/${AWS_SDK_SRC_TAR}
    BUILD_COMMAND ${CMAKE_COMMAND} cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_ONLY='dynamodb;kenisis' -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/Ext/Aws/CtcInstall/${CMAKE_INSTALL_PREFIX} -DENABLE_TESTING=OFF ${CMAKE_BINARY_DIR}/source
Run Code Online (Sandbox Code Playgroud)

But, when i pass -DBUILD_ONLY='dynamodb;kenisis'(supported by aws cmake file), Build is failing. If i pass -DBUILD_ONLY=dynamodb only dynamodb related targets are getting generated. But i need kenisis related targets also. How can i pass that semicolon separated list in ExternalProject_Add.

cmake amazon-web-services aws-sdk

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

如果在SQUARE宏中传递前缀变量,为什么结果会有所不同?

您能否解释为什么以下程序的结果不同?

计划:

#define MUL(X) X*X
int main()
{
  int i=3;
  cout<<MUL(++i)<<"\n";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

25
Run Code Online (Sandbox Code Playgroud)

c++

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