|
B()안에서 "리트스 참조"가 될 때
A()삭제는 되지 않고 B()안에서 LeaveCriticalSection이 되고 나서
A() "리스트에 삭제" 가 이루어 지는 가장 보편적인 코드이네요.
별 문제가 없을 것으로 보이는 데요...
문정원 님이 쓰신 글 :
: class Test
: {
: TList* pList;
: A();
: B();
: ..
: };
:
: void Test::A()
: {
: EnterCriticalSection(&cs);
: 리스트에 삭제
: LeaveCriticalSection(&cs);
: }
:
: void Test::B()
: {
: EnterCriticalSection(&cs);
: 리스트 참조
: LeaveCriticalSection(&cs);
: }
:
: 쓰레드에서 사용한다고 가정하여
: B() 에서 pList 를 참조하는 과정에서 A()가 실행되어 삭제될때
: 보호를 받을수 있나요?
: 아니면 세마포어나 뮤텍스를 사용하여야 하나요..
:
: 꼭좀 알려주세요....
:
:
|