Window下这样写临界段对吗?
critical_flag_t CriticalEnter(void){
critical_flag_t p_cs = newCRITICAL_SECTION;
InitializeCriticalSection(p_cs);
return p_cs;
}
void CriticalExit(critical_flag_t flags)
{
critical_flag_t p_cs=flags;
LeaveCriticalSection(p_cs);
DeleteCriticalSection(p_cs);
delete p_cs;
}
#define CRITICAL()\
for(critical_flag_t __flags=CriticalEnter(),__ToDo=(critical_flag_t)1;__ToDo;__ToDo=0,CriticalExit(__flags))
临界段:
critical_flag_t critical_flag=CriticalEnter();
………………
CriticalExit(critical_flag);
或者:
CRITICAL()
{
………………
}
页:
[1]