[1000分]哪位高手给个Linux下可用的 pthread_suspend/resume 来, 不想到libgc里慢慢去找了
[1000分]谁给个Linux下可用的 pthread_suspend/resume 来, 不想到libgc里慢慢去找了
这300分是给顶帖子的人的. 谁给个可以用的我单独开帖子给分, 要可用分也可以...
无聊的管理内存啥的把人弄烦了,开始准备用libgc的, 后来看了看发现不是很适合嵌入式环境, 打算还是自己写个GC的库算了, 搞的也基本差不多了, 单线程的在 WIN32/WIN64/Linux/X64 Linux/ARM Linux/Android下测试都没有问题...
多线程的因为 WIN下有现成的 Suspend/ResumeThread, 跑起来也没有问题了, 就是在 Linux/Android 下遇到了点麻烦, 现在我往线程发 SIGUSR2, 在 signal handle 里 pthread_mutex_lock/pthread_cond_wait 等待resume的事件, 这个会有一定的概率(1/1000左右, 基本都出现在线程开始启动/结束的时候, 我在线程开始结束时加上sleep会大大降低出错的概率, 基本上 sleep 200ms 就基本不会出错了, 但这看起来不是个好办法)线程没有被挂起, 因为 mutex_lock/cond_wait/sem_wait 这些函数都不是 signal safe 的, 用 sem_wait 也偶尔会deadlock ..
看来要去libgc里慢慢抄了...
------解决方案--------------------
友情帮顶 字数.cpp
------解决方案--------------------
友情帮顶。
只用纯消息驱动来使用线程的人飘过。
------解决方案--------------------
绑顶,
表示也是被动接收消息,再开启对应的服务线程啦!
------解决方案--------------------
凑个热闹..
------解决方案--------------------
大眼瞪小眼。
------解决方案--------------------
![[1000分]哪位高手给个Linux下可用的 pthread_suspend/resume 来, 不想到libgc里慢慢去找了 [1000分]哪位高手给个Linux下可用的 pthread_suspend/resume 来, 不想到libgc里慢慢去找了](/default/index/img?u=aHR0cDovL3d3dy5teWV4Y2VwdGlvbnMubmV0L2ltZy8yMDEzLzA5LzI3LzE1MjYzODI1Mi5naWY=)
------解决方案--------------------
![[1000分]哪位高手给个Linux下可用的 pthread_suspend/resume 来, 不想到libgc里慢慢去找了 [1000分]哪位高手给个Linux下可用的 pthread_suspend/resume 来, 不想到libgc里慢慢去找了](/default/index/img?u=aHR0cDovL3d3dy5teWV4Y2VwdGlvbnMubmV0L2ltZy8yMDEzLzA5LzI3LzE1MjYzODI1My5naWY=)
------解决方案--------------------
![[1000分]哪位高手给个Linux下可用的 pthread_suspend/resume 来, 不想到libgc里慢慢去找了 [1000分]哪位高手给个Linux下可用的 pthread_suspend/resume 来, 不想到libgc里慢慢去找了](/default/index/img?u=aHR0cDovL3d3dy5teWV4Y2VwdGlvbnMubmV0L2ltZy8yMDEzLzA5LzI3LzE1MjYzODI1Mi5naWY=)
------解决方案--------------------
貌似很厉害额
------解决方案--------------------
能懂楼主 讲 什么了。。。 不过还是经验不够,想不到用途
------解决方案--------------------
看来楼主还得自己找 睡觉![[1000分]哪位高手给个Linux下可用的 pthread_suspend/resume 来, 不想到libgc里慢慢去找了 [1000分]哪位高手给个Linux下可用的 pthread_suspend/resume 来, 不想到libgc里慢慢去找了](/default/index/img?u=aHR0cDovL3d3dy5teWV4Y2VwdGlvbnMubmV0L2ltZy8yMDEzLzA5LzI3LzE1MjYzODI1NC5naWY=)
------解决方案--------------------
这300分是给顶帖子的人的. 谁给个可以用的我单独开帖子给分, 要可用分也可以...
无聊的管理内存啥的把人弄烦了,开始准备用libgc的, 后来看了看发现不是很适合嵌入式环境, 打算还是自己写个GC的库算了, 搞的也基本差不多了, 单线程的在 WIN32/WIN64/Linux/X64 Linux/ARM Linux/Android下测试都没有问题...
多线程的因为 WIN下有现成的 Suspend/ResumeThread, 跑起来也没有问题了, 就是在 Linux/Android 下遇到了点麻烦, 现在我往线程发 SIGUSR2, 在 signal handle 里 pthread_mutex_lock/pthread_cond_wait 等待resume的事件, 这个会有一定的概率(1/1000左右, 基本都出现在线程开始启动/结束的时候, 我在线程开始结束时加上sleep会大大降低出错的概率, 基本上 sleep 200ms 就基本不会出错了, 但这看起来不是个好办法)线程没有被挂起, 因为 mutex_lock/cond_wait/sem_wait 这些函数都不是 signal safe 的, 用 sem_wait 也偶尔会deadlock ..
看来要去libgc里慢慢抄了...
------解决方案--------------------
友情帮顶 字数.cpp
------解决方案--------------------
友情帮顶。
只用纯消息驱动来使用线程的人飘过。
------解决方案--------------------
绑顶,
表示也是被动接收消息,再开启对应的服务线程啦!
------解决方案--------------------
凑个热闹..
------解决方案--------------------
大眼瞪小眼。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
貌似很厉害额
------解决方案--------------------
能懂楼主 讲 什么了。。。 不过还是经验不够,想不到用途
------解决方案--------------------
看来楼主还得自己找 睡觉
------解决方案--------------------