stm8s103 发表于 2010-7-1 08:31:28

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]
查看完整版本: Window下这样写临界段对吗?