뮤텍스 구현하고 있는데 잠근테스크를 확인해서 자기 자신이 잠궜다면 잠군 카운터를 증가 시키더라구요.
근데 어떤 한 태스크가 같은 임계영역을 2번 잠구는게 어떤 경우인가요.
태스크는 같은 기능을 하더라도 각각 고유한 ID를 갖고 이 태스크가 임계영역에 들어갔는데 어떻게 다시 임계영역에 접근할 수 있는지 상상이 안됩니다... 스케줄링 되서 준비큐에 들어가거나 대기큐에 들어가더라도 결국엔 계속 하던일을 하거나 태스크 삭제밖에 답이 안나오는데 말이죠 ...ㅠㅠ

 마음으론 이해하겠는데 머리로는 이해를 못하겠어요.
 

 if( kTestAndSet( &(pstMutex->bLockFlag), 0, 1 ) == FALSE )
{
// bLockFlag가 0이 아님으로 잠겨있다는 것, blockFlag는 원상태 유지.

// 임계자원을 잠근 테스크가 누군지 확인.
if( pstMutex->qwTaskID == kGetRunningTask()->stNode.qwID )
{
// 내가 잠궜으면? 카운터만 증가시킴. 
pstMutex->dwLockCount++;
return ;
}
while( kTestAndSet( &(pstMutex->bLockFlag), 0, 1) )
{
kSchedule();
}
}