본문 바로가기

Enginius/C / C++

synchronization문제

// 이거 신기하다 -_-;; 타이머와 MessageBox와 synchronization이 잘 안되는 것 같다. 
/*
* flag1 = 1;
* flag2 = 1;
* Ontimer
* (
* if(flag1)
* {
* MessageBox("flag1 on \r\n");
* flag1 = 0;
* }
* if(flag2)
* {
* flag2 = 0;
* MessageBox("flag2 on \r\n");
* }
* )
*
* 이렇게 프로그램을 작성할 경우 flag1 on은 여러번 출력될 것 같다. MessageBox를 호출하고 IO Bound로 블록되고 // 
* 타이머는 독립적으로 계속 tick을 내보내서 request를 보낸다. 결국 계속해서 flag1 on이 띄워진다. 
* 결국 동기화 (synchronization) 문제로 보인다. 
*/