pthreads

    4热度

    3回答

    我正在写一个用户空间线程库。我有一个管理每个线程的结构。我的线程非常简单,它们接受一个函数ptr及其参数,并且只运行一次该函数。 每个线程都有一个jmp_buf,我使用setjmp和longjmp在线程间切换。我无法弄清楚的一件事是如何判断此功能何时完成。 对于每个线程,我以两种方式修改jmpbuf。 我编辑PC并将其设置为函数指针,所以程序计数器接下来会出现在那里。 我也会让每个人都有自己的堆栈

    2热度

    2回答

    我有这样一段代码在这里: 这些是用于创建和停止并行线程功能: void WatchdogController::conscious_process_handler_start() { if (debug) cout << "WatchdogController: starting conscious process thread" << endl; cn_pr_thread

    2热度

    2回答

    建议或者甚至可以通过不同的并行运行的posix线程来获取并读取动态增长的结构数组?我在哪里必须寻找这种应用的最佳实践 - 有没有哪些是“共同的智慧”?我是这个领域的新手,需要一些初步的指导,以便从哪里开始以及需要注意什么。看起来这里有很多可能,我不想陷入初学者陷阱。

    8热度

    1回答

    比方说我: malloc一个pthread_t用于保存线程上下文 pthread_create与作为用户参数的指针pthread_t结构 换句话说,螺纹功能可以访问其pthread_t上下文结构。现在这里是棘手的位: pthread如何退出它自己并得到pthread_t上下文以某种方式释放?是否有可能不是涉及父线程? (无互斥/连接等) 将此视为“轻量级过程”。 (没有线程不能free()结构只是

    5热度

    5回答

    比方说,我已经开始与pthread_create()新线程,然后使用pthread_detach()分离它。现在,从内的的线程上下文中,我使用malloc()分配了一些内存。 当线程退出,将malloc'ed内存自动被删除?

    1热度

    1回答

    我正在测试多线程服务器的Mac OS X端口。它会启动,但在工作线程第一次请求客户端请求后不久,它会在vsnprintf中死掉。 看来,vsnprintf正试图用pthread_setspecific来操纵一些线程本地内存。这引用了一个糟糕的指针。 然后,gdb捕获一个dlopen调用,得到一个错误,并且试图格式化它自己的错误信息。 因为要格式化错误,它需要设置一些线程本地内存! 在此之前,我自己

    23热度

    3回答

    如何确定分离的pthread是否仍然存在? 我有一个与线程通信的通道(一个单向队列从线程向外指向),但是如果线程没有喘气就死了会发生什么? ,我就辞职自己使用过程信号还是可以的我探头线程生动活泼不知何故?

    1热度

    3回答

    我当前对条件变量的理解是所有被阻塞的(等待的)线程都被插入到一个基本的FIFO队列中,当signal()被调用时,第一个队列被唤醒。 有没有什么办法可以修改这个队列(或创建一个新的结构)来执行优先级队列呢?我一直在考虑这个问题,但大多数解决方案最终都受到C.V.和互斥体固有的队列结构的阻碍。 谢谢!

    2热度

    1回答

    我有定义了以下功能的C头文件: void my_func(pthread_t tid) { ... 当我编译,它说: void my_func(pthread_t tid); 这是由另一功能定义为: ****.h:2: error: expected specifier-qualifier-list before ‘pthread_t’ 任何想法我做错了什么?

    9热度

    1回答

    问候。我正尝试创建一个autoconf配置脚本,它可以自动检查使用哪个pthread选项,理想情况下,使用gcc编译时指定-pthread。 这是我希望AX_PTHREAD可以工作,但似乎都不能在MacOS 10.6上工作。 我使用AX_PTHREAD从http://www.nongnu.org/autoconf-archive/ax_pthread.html 对于我不明白原因,它只是不为脚本建立