我定义了以下两个函数宏来检查线程类中的退出标志。
//use this in run()
#define CHECK_EXIT if( exitFlag_ ) {\
//do something\
return;\
}\
//use this in function
#define CHECK_EXIT_IN_FUNC if( exitFlag_ ) {\
//do something\
return false;\
}\
Run Code Online (Sandbox Code Playgroud)
我必须单独定义它们,因为返回值不同。
我可以在一个宏中定义它吗?
我用谷歌搜索,但找不到答案。
感谢您的任何建议。
我在拖放时遇到一些问题QTreeView:
我在模型中设置了 flag并Qt::MoveAction重新实现了等。该模型继承了.removeRows()dropMimeData()QAbstractItemModel
当我拖放时,mimeData()、dropMimeData()会自动调用,并且也会自动dropMimeData()调用insertRows()。但removeRows()没有被调用,所以拖动的项目仍然存在。我用谷歌搜索,但他们说他们的removeRows()电话是自动呼叫的。
removeRows()为什么我的之后没有被叫到dropMimeData()?removeRows()手动拨入dropMimeData()吗?QModelIndex拖动开始的时间?当开始拖动时,在 中mimeData(),我可以将索引保存在私有成员中,但看起来不太好。
任何意见,将不胜感激。
我的 shell 脚本在启动时打印分段错误。
看门狗.sh:
#!/bin/bash
while true
do
processCnt=`ps ax | grep $1 | grep -v grep | grep -v watchdog | wc -l`
if [ $processCnt -lt 1 ]; then
$1
fi
sleep 2
done
Run Code Online (Sandbox Code Playgroud)
脚本获取程序名称作为参数。
我还在 run.sh 中同时使用不同的参数运行这个脚本 4 次。
运行.sh:
./watchdog.sh hqservicedemon &
./watchdog.sh relayservicedemon &
./watchdog.sh rtspservicedemon &
./watchdog.sh httpcontrolservicedemon &
Run Code Online (Sandbox Code Playgroud)
当我运行 run.sh 时出现错误:
./watchdog.sh: line xx: 7316 segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)
经过一些测试,在 run.sh 中只运行一个 watchdog.sh 时看起来没问题。
我在 shell 脚本中做错了什么?
谢谢你的任何建议。
编辑:我的恶魔有问题,而不是脚本。修复恶魔后,脚本运行良好。