草庐IT

pthread_create

全部标签

c++ - Catch.hpp 单元测试 : How to dynamically create test cases?

我正在使用CATCHv1.1build14对我的C++代码进行单元测试。作为测试的一部分,我想检查代码中几个模块的输出。没有固定数量的模块;可以随时添加更多模块。但是,测试每个模块的代码是相同的。因此,我认为将测试代码放在for循环中是最理想的。事实上,使用catch.hpp,我已经验证了我可以在测试用例中动态创建部分,其中每个部分对应一个模块。我可以通过将SECTION宏包含在for循环中来做到这一点,例如:#include"catch.hpp"#include#include#include"myHeader.h"TEST_CASE("Moduletesting","[module

c++ - MIPS 上 pthreads 中的段错误

我正在尝试在MIPSLinux机器上运行我的代码(小端,没有硬件float):#cat/proc/cpuinfo|grepmodelcpumodel:MIPS24KcV5.5我的程序在x86和ARM系统上运行良好,但在MIPS上因段错误而崩溃,总是在(或接近)pthreads库函数调用中。我尝试了两个工具链(来自here的MTIGNU/Linux工具链MIPS32R2-MIPS32R5和来自here的SourceryCodeBenchLite2016.05-8)——细节略有不同,但段错误总是发生。阅读邮件列表我发现了MIPS平台上pthreads段错误的两个原因:在uClibc的MIP

c++ - 为什么在极少数情况下 pthread_exit() 在 pthread_detach() 之后调用时会导致 SEGV?

我在调用pthread_join()时遇到了一个C++无法轻易重现的SEGV(大约每100,000次测试运行中就会出现一次),因为我的应用程序正在关闭。我检查了errno的值,它是零。这是在Centosv4上运行的。在什么情况下pthread_join()会得到一个SEGV?这可能是某种竞争条件,因为它非常罕见。有人建议我不应该调用pthread_detach()和pthread_exit(),但我不清楚原因。我的第一个工作假设是pthread_join()被调用,而pthread_exit()仍在另一个线程中运行,这不知何故导致了SEGV,但是许多人表示这不是问题。在应用程序退出期间

c++ - 一个类中的pthread

大家好,考虑到下面的代码(用g++-lpthreadthread_test.cpp编译),我如何从“thread_function”中知道我在第几线程?如果您有任何其他建议,请告诉我。谢谢!thread_test.cpp:#include#include#include#includeclassA{public:A();voidrun();private:staticvoid*thread_function(void*ptr);pthread_tm_thread1,m_thread2;staticintm_global;};intA::m_global=0;A::A(){intret1

c++ - pthreads:触发其他线程的线程

您好,我是多线程编程的新手。我正在尝试创建一个代码来创建一个线程THREAD1,在它完成某些操作后,它会触发另外两个线程,比如THREAD2和THREAD3,然后退出。我写了两个可能的解决方案。1)条件变量的使用(不起作用:在某些情况下我遇到了死锁):pthread_mutex_tready_mutex=PTHREAD_MUTEX_INITIALIZER;pthread_cond_tready_cond=PTHREAD_COND_INITIALIZER;boolready=false;void*trigger(void*);void*func1(void*);void*func2(vo

c++ - 为什么 pthread_mutex_t 在尝试通过来自两个不同进程的共享内存进行锁定时会出现段错误?

我为打算在两个进程之间使用的pthread_mutex_t编写了一个super简单的包装器://basicversionjusttotestusingitbetweentwoprocessesstructMyLock{public:MyLock(){pthread_mutexattr_init(&attr);pthread_mutexattr_setpshared(&attr,PTHREAD_PROCESS_SHARED);pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_ADAPTIVE_NP);pthread_mutex_init(&loc

c++ - pthread_create 没有参数?

我想创建一个没有函数参数的线程,但我一直收到严重困扰我的错误,因为我无法让一些super简单的东西正常工作这是我的代码:#include#include#include#include#includevoid*showart(NULL);intmain(intargc,char**argv){pthread_tthread1;pthread_create(&thread1,NULL,showart,NULL);getchar();return0;}void*showart(NULL){std::stringtext;std::ifstreamifs("ascii");while(!if

c++ - 如何让 cmake 使用 "-pthread"而不是 -lpthread”?

这是我的环境:操作系统:Ubuntu14.10海湾合作委员会:4.9cmake:2.8,3.1(都试过了)项目:muduo最近开始学习网络编程,下载muduo进行学习。虽然我在构建源代码时遇到问题,因为cmake会提示“找不到-lpthreads”。我做了一些研究。这主要是由于Ubuntu14.10下的gcc版本较新引起的。gcc-4.9将使用“-pthread”链接到pthread库,然而,旧版本的gcc使用“-lpthreads”。似乎cmake仍然使用“-lpthreads”,我不知道如何更正这个......错误日志如下:File/home/jack/workspace/gith

c++ - 哪个更高效/整洁 : clearing an existing stringstream or creating a new one?

只是出于好奇而提出的简单问题。类上的多个方法需要使用字符串流,或者特别是ostringstream。1)有一个stringstream变量作为类成员,然后在使用它之前清除它,即msg.str("")2)每次需要使用时,在每个方法中本地创建一个新的stringstream变量。就效率和整洁度而言,哪种实现方式最好?我的直觉是选项1,但不确定初始构造与每次调用str()相结合是否会更糟?附言我读过Initializing..whichoneismoreefficient?和Whichisquicker/moreefficient?,我的下一步是研究分析和编写一个小的测试应用程序,但我觉得问

iPhone 设置 : create dependent settings?

是否可以创建“依赖设置”?例如你有这样的分层设置:-includeanimals--includedogs--includecats在哪里切换动物会自动切换狗和猫(我知道我可以在代码中满足这一点,但是是否可以配置操作系统提供的设置屏幕,以便在包含动物时自动将狗的UISwitch设置为关闭设置为关闭?) 最佳答案 没有。您需要更改您的UI以便不需要此切换,同时显示这两个选项并希望它不会混淆您的用户,或者只在您的应用程序中包含您可以自己编写正确代码的设置。这是一个非常烦人的限制。可能值得向Apple提交错误报告。