看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): GCC 額外使用到的函數庫(Library Used): 公司與客戶自行開發 問題(Question): 最近將RD所開發的套件整合進客戶產品, 發現在pthread create時一直報resource不足. 先是發現RD的套件內create pthread時沒有指定stack size. 導致使用實作預設的大小(6MB.) 多create幾個就爆炸了. 叫RD那邊卡一下總算是順利跑起來. 但是在review memory map時,發現客戶那邊的thread stack size也是過大, 導致系統依然有機會GG. 不過在嘗試改客戶source code時發現. 客戶的幾個thread在pthread create時,我們指定stack size在1MB. (set stack size回傳成功) 但是thread create後實際在thread內去抓attr, 發現依然是吃到6MB.. 我唯一想到的是在thread create後還有地方去把stack size加大. 請問還有什麼可能嗎? 感謝. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.225.239 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1445678927.A.D67.html ※ 編輯: hegemon (36.228.225.239), 10/24/2015 17:33:30
EdisonX: pthread_attr_setstacksize ?? 10/24 18:04
hegemon: yes 10/24 18:15
askacis: 什麼東西會用到這麼大的 stack? 10/25 02:00
askacis: 太大的應該要用malloc拿記憶體 10/25 02:01
hegemon: 這是預設值..一般預設都會很大 10/25 14:43
hegemon: 找到原因了,很多thread設定的stack size小於16k,結果就 10/27 18:30
hegemon: 被忽略改用default了… 10/27 18:30