[問題] pthread mutex問題請教
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Android Linux
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
None
問題(Question):
我自己實作一個function去開底層的file node(/dev/XXX)
並將這個function包成native library透過JNI給app使用
在執行app的時候 app本身的程式也會去使用同一file node(另一個library)
app也會呼叫我包好的native library 意思就是說file node會被開啟兩次
第一次是app其他process去呼叫的
另一次則是load native library去呼叫的
我有試著在open file node前加mutex做保護 但是不知道這樣是不是正確的
pthread_mutex_lock(&mutex);
ret = open(/dev/XXX, O_RDWR);
...
close(/dev/XXX);
pthread_mutex_unlock(&mutex);
我發現這樣好像擋不了file node被重複開的現象
不知道我是否要在加其他的東西才能擋到呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.173.192
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1472688981.A.626.html
→
09/01 08:30, , 1F
09/01 08:30, 1F
→
09/01 10:20, , 2F
09/01 10:20, 2F
→
09/01 10:20, , 3F
09/01 10:20, 3F
→
09/01 10:22, , 4F
09/01 10:22, 4F
推
09/01 10:51, , 5F
09/01 10:51, 5F
→
09/01 14:04, , 6F
09/01 14:04, 6F
→
09/01 14:05, , 7F
09/01 14:05, 7F
→
09/01 18:09, , 8F
09/01 18:09, 8F
推
09/01 22:25, , 9F
09/01 22:25, 9F
Eleina Hazukashiine大 我原文表達的不好 我的作法就如同兩位的意見是一樣的
不過還是會發生重複開檔的情形 不知道是不是因為不同process而無法擋掉
metux是只能擋同一process不同thread的情形嗎?
tjjh89017大 不太懂大大的意思 可在說明詳細嗎?
HolyBug jaid大 file lock我還沒有用過 會在試試看 謝謝
※ 編輯: chienchan (59.127.173.192), 09/01/2016 22:51:44
→
09/01 23:20, , 10F
09/01 23:20, 10F
推
09/02 00:40, , 11F
09/02 00:40, 11F
推
09/02 00:52, , 12F
09/02 00:52, 12F
推
09/02 01:12, , 13F
09/02 01:12, 13F
→
09/02 01:12, , 14F
09/02 01:12, 14F
→
09/02 01:15, , 15F
09/02 01:15, 15F
→
09/02 01:19, , 16F
09/02 01:19, 16F
→
09/02 01:20, , 17F
09/02 01:20, 17F
→
09/02 09:11, , 18F
09/02 09:11, 18F
→
09/02 09:12, , 19F
09/02 09:12, 19F
推
09/02 13:23, , 20F
09/02 13:23, 20F
→
09/02 13:23, , 21F
09/02 13:23, 21F
→
09/02 13:23, , 22F
09/02 13:23, 22F
→
09/02 13:23, , 23F
09/02 13:23, 23F
→
09/02 13:23, , 24F
09/02 13:23, 24F
推
09/02 13:30, , 25F
09/02 13:30, 25F
→
09/02 13:30, , 26F
09/02 13:30, 26F
推
09/02 18:32, , 27F
09/02 18:32, 27F
→
09/02 19:21, , 28F
09/02 19:21, 28F
推
09/03 23:05, , 29F
09/03 23:05, 29F