|
@@ -44,18 +44,19 @@ procsm::procsm(const char * strsmname,const unsigned int nBufSize,const unsigned
|
|
|
if(bres == false)
|
|
|
{
|
|
|
mpASMPtr->create(sizeof(ASM_PTR));
|
|
|
- ASM_PTR * pasm = (ASM_PTR *)mpASMPtr->data();
|
|
|
- snprintf(strasmname,256,"%s_%lld",strsmname,QDateTime::currentMSecsSinceEpoch());
|
|
|
- pasm->mnshmsize = sizeof(procsm_info)+nMaxPacCount*sizeof(procsm_head) + nBufSize;
|
|
|
- pasm->mnUpdateTime = QDateTime::currentMSecsSinceEpoch();
|
|
|
- strncpy(pasm->mstrshmname,strasmname,256);
|
|
|
- mASM_State = *pasm;
|
|
|
+
|
|
|
}
|
|
|
- else
|
|
|
+ ASM_PTR * pasm = (ASM_PTR *)mpASMPtr->data();
|
|
|
+ if(pasm == NULL)
|
|
|
{
|
|
|
- ASM_PTR * pasm = (ASM_PTR *)mpASMPtr->data();
|
|
|
- mASM_State = *pasm;
|
|
|
+ qDebug("ASM_PTR is NULL.");
|
|
|
+ return;
|
|
|
}
|
|
|
+ snprintf(strasmname,256,"%s_%lld",strsmname,QDateTime::currentMSecsSinceEpoch());
|
|
|
+ pasm->mnshmsize = sizeof(procsm_info)+nMaxPacCount*sizeof(procsm_head) + nBufSize;
|
|
|
+ pasm->mnUpdateTime = QDateTime::currentMSecsSinceEpoch();
|
|
|
+ strncpy(pasm->mstrshmname,strasmname,256);
|
|
|
+ mASM_State = *pasm;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -76,26 +77,26 @@ procsm::procsm(const char * strsmname,const unsigned int nBufSize,const unsigned
|
|
|
mmsg<<1;
|
|
|
#endif
|
|
|
|
|
|
- bool bAttach = false;
|
|
|
- AttachThread AT(mpASM,bAttach);
|
|
|
- AT.start();
|
|
|
- QTime xTime;
|
|
|
- xTime.start();
|
|
|
- while(xTime.elapsed()<100)
|
|
|
- {
|
|
|
- if(AT.mbrun == false)
|
|
|
- {
|
|
|
- bAttach = AT.mbAttach;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- // qDebug("time is %d",xTime.elapsed());
|
|
|
- if(xTime.elapsed()>= 1000)
|
|
|
- {
|
|
|
- qDebug("in 1000ms Attach fail.terminate it .");
|
|
|
- AT.terminate();
|
|
|
- bAttach = false;
|
|
|
- }
|
|
|
+ bool bAttach = mpASM->attach();
|
|
|
+// AttachThread AT(mpASM,bAttach);
|
|
|
+// AT.start();
|
|
|
+// QTime xTime;
|
|
|
+// xTime.start();
|
|
|
+// while(xTime.elapsed()<100)
|
|
|
+// {
|
|
|
+// if(AT.mbrun == false)
|
|
|
+// {
|
|
|
+// bAttach = AT.mbAttach;
|
|
|
+// break;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// // qDebug("time is %d",xTime.elapsed());
|
|
|
+// if(xTime.elapsed()>= 1000)
|
|
|
+// {
|
|
|
+// qDebug("in 1000ms Attach fail.terminate it .");
|
|
|
+// AT.terminate();
|
|
|
+// bAttach = false;
|
|
|
+// }
|
|
|
|
|
|
// if(!mpASM->attach())
|
|
|
if(!bAttach)
|
|
@@ -103,6 +104,11 @@ procsm::procsm(const char * strsmname,const unsigned int nBufSize,const unsigned
|
|
|
|
|
|
mpASM->create(sizeof(procsm_info)+nMaxPacCount*sizeof(procsm_head) + nBufSize);
|
|
|
char * p = (char *)mpASM->data();
|
|
|
+ if(p == NULL)
|
|
|
+ {
|
|
|
+ qDebug("Create SharedMemory Fail.");
|
|
|
+ return;
|
|
|
+ }
|
|
|
mpinfo = (procsm_info *)p;
|
|
|
mphead = (procsm_head *)(p+sizeof(procsm_info));
|
|
|
mpinfo->mCap = nMaxPacCount;
|