[問題] pthread stack size...

看板C_and_CPP (C/C++)作者 (hegemon)時間10年前 (2015/10/24 17:28), 10年前編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/1
開發平台(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

10/24 18:04, , 1F
pthread_attr_setstacksize ??
10/24 18:04, 1F

10/24 18:15, , 2F
yes
10/24 18:15, 2F

10/25 02:00, , 3F
什麼東西會用到這麼大的 stack?
10/25 02:00, 3F

10/25 02:01, , 4F
太大的應該要用malloc拿記憶體
10/25 02:01, 4F

10/25 14:43, , 5F
這是預設值..一般預設都會很大
10/25 14:43, 5F

10/27 18:30, , 6F
找到原因了,很多thread設定的stack size小於16k,結果就
10/27 18:30, 6F

10/27 18:30, , 7F
被忽略改用default了…
10/27 18:30, 7F
文章代碼(AID): #1MAqzFrd (C_and_CPP)
文章代碼(AID): #1MAqzFrd (C_and_CPP)