QWSLock::up(): Invalid argument
生活随笔
收集整理的這篇文章主要介紹了
QWSLock::up(): Invalid argument
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
運行qt時,點擊QMessageBox的確定按鈕是出現錯誤QWSLock::up(): Invalid argument, QWSLock::down(): Invalid argument,這個是qt的bug。在網上找到patch更改之后從新編譯,更改之后,問題解決。
參考鏈接:
http://www.mail-archive.com/community@lists.openmoko.org/msg65512.html
https://git.congatec.com/yocto/poky/commit/d1b523e7dd55b11d1b02904a83a0464b95616c07
patch的內容如下:
diff --git a/src/gui/embedded/qwslock.cpp b/src/gui/embedded/qwslock.cpp index 9914a24..1055785 100644 --- a/src/gui/embedded/qwslock.cpp +++ b/src/gui/embedded/qwslock.cpp @@ -83,9 +83,12 @@ QWSLock::QWSLock(int id) : semId(id)QWSSignalHandler::instance()->addWSLock(this);#endif+ owned = false; +#ifndef QT_POSIX_IPCif (semId == -1) {semId = semget(IPC_PRIVATE, 3, IPC_CREAT | 0666); + owned = true;if (semId == -1) {perror("QWSLock::QWSLock");qFatal("Unable to create semaphore"); @@ -100,7 +104,6 @@ QWSLock::QWSLock(int id) : semId(id)}#elsesems[0] = sems[1] = sems[2] = SEM_FAILED; - owned = false;if (semId == -1) {// ### generate really unique IDs @@ -134,9 +137,11 @@ QWSLock::~QWSLock()if (semId != -1) {#ifndef QT_POSIX_IPC - qt_semun semval; - semval.val = 0; - semctl(semId, 0, IPC_RMID, semval); + if (owned) { + qt_semun semval; + semval.val = 0; + semctl(semId, 0, IPC_RMID, semval); + }semId = -1;#else// emulate the SEM_UNDO behavior for the BackingStore lock diff --git a/src/gui/embedded/qwslock_p.h b/src/gui/embedded/qwslock_p.h index d324e4f..d867d20 100644 --- a/src/gui/embedded/qwslock_p.h +++ b/src/gui/embedded/qwslock_p.h @@ -86,8 +86,8 @@ private:int lockCount[2];#ifdef QT_POSIX_IPCsem_t *sems[3]; - bool owned;#endif + bool owned;};QT_END_NAMESPACETony Liu
2017-5-2, Shenzhen
轉載于:https://www.cnblogs.com/helloworldtoyou/p/6798034.html
總結
以上是生活随笔為你收集整理的QWSLock::up(): Invalid argument的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Adapter对数据库的查询、删除操
- 下一篇: Java - 对象的创建