[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里慢慢抄了...