12 |
|
|
13 |
do { |
do { |
14 |
|
|
15 |
//My_EnterCriticalSection( myId, lpsec ); |
My_EnterCriticalSection( myId, lpsec ); |
16 |
|
|
17 |
/*----*/ |
/*----*/ |
18 |
value = myId; |
value = myId; |
24 |
} |
} |
25 |
/*----*/ |
/*----*/ |
26 |
|
|
27 |
//My_LeaveCriticalSection( myId, lpsec ); |
My_LeaveCriticalSection( myId, lpsec ); |
28 |
|
|
29 |
iter++; |
iter++; |
30 |
} while (iter < 30); |
} while (iter < 30); |
34 |
|
|
35 |
main () { |
main () { |
36 |
HANDLE th1, th2, th3; |
HANDLE th1, th2, th3; |
37 |
//My_InitializeCriticalSection( &lpsec ); |
My_InitializeCriticalSection( &lpsec ); |
38 |
|
|
39 |
th1 = CreateThread( NULL, 0, thread_func, (void*) 1, 0, NULL ); |
th1 = CreateThread( NULL, 0, thread_func, (void*) 1, 0, NULL ); |
40 |
th2 = CreateThread( NULL, 0, thread_func, (void*) 2, 0, NULL ); |
th2 = CreateThread( NULL, 0, thread_func, (void*) 2, 0, NULL ); |
44 |
WaitForSingleObject( th2, INFINITE ); |
WaitForSingleObject( th2, INFINITE ); |
45 |
WaitForSingleObject( th3, INFINITE ); |
WaitForSingleObject( th3, INFINITE ); |
46 |
|
|
47 |
//My_DeleteCriticalSection( lpsec ); |
My_DeleteCriticalSection( lpsec ); |
48 |
} |
} |
49 |
|
|