C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[72431] [질문]64bit 멀티스레드 프로그램에서 CriticalSection 사용시 문제 LLVM Clang때문 인가요?
CodeMaster [wrinos] 4063 읽음    2015-03-05 11:42
안녕하세요

기존에 개발되어 사용하던 32bit프로그램을 64bit으로 변환하는 과정에서 발견 된 현상있어 문의 드립니다.


현제 개발IDE는 Rad XE3 Update2를 사용하고 있습니다.

멀티스레드에서 로컬파일 DB접근이 동시에 이루어 질 수 있는 부분 있어
Critical Section을 이용하여 동시접근을 제한하여 사용해 왔었습니다.
각 스레드에서 Critical Section 진입 및 해지(Enter, Leave)가 짝이 맞게 되어 있어
정상적으로 각 스레드에서 접근하여 읽기 쓰기 작업이 이루어 지며,
windows 32bit환경으로 빌드하여 프로그램 사용시 정상동작을 확인했습니다.


하지만, 동일 프로그램을 windows 64bit환경으로 변경하고, 빌드하여 사용시 문제가 있었습니다.
한 쓰레드에서 CriticalSection 진입(EnterCriticalSection)후 나오더라도(LeaveCriticalSection)
다른 쓰레드에서 CriticalSection 진입시 Block되어 대기하고 있는 현상이 발생되고 있습니다.(Logging으로 문제점을 찾음)

테스트로 MS 비쥬얼스튜디오로 멀티스레드에서 CriticalSection사용하는 64bit 프로그램을 간단히
만들어 테스트 해보았지만, 해당 증상이 발견되고 있지는 않고 있습니다.
이러한 문제가 RadStudio의 C++ builder가 64bit으로 오면서 컴파일러가 LLVM Clang기반으로 추가된 것(바뀐 것?)으로 알고 있습니다.
이와 관련해서 생긴현상 인지도 모르겠다는 가설로, 일단 LLVM Clang에서 관련자료를 찾는 중입니다.


한 줄 요약
-> '64bit에서는 LLVM Clang을 이용한 컴파일러로 인해 LeaveCriticalSection 명령이 않먹는거 같다'입니다.

혹시 관련 내용을 알고 계신분이 있으시다면 조언 부탁드립니다.

+ -

관련 글 리스트
72431 [질문]64bit 멀티스레드 프로그램에서 CriticalSection 사용시 문제 LLVM Clang때문 인가요? CodeMaster 4063 2015/03/05
72438     Re:[질문]64bit 멀티스레드 프로그램에서 CriticalSection 사용시 문제 LLVM Clang때문 인가요? 빌더(TWx) 4570 2015/03/06
72439         Re:Re:[질문]64bit 멀티스레드 프로그램에서 CriticalSection 사용시 문제 LLVM Clang때문 인가요? CodeMaster 4476 2015/03/07
72432     Re:[질문]64bit 멀티스레드 프로그램에서 CriticalSection 사용시 문제 LLVM Clang때문 인가요? 4431 2015/03/05
72433         Re:Re:[질문]64bit 멀티스레드 프로그램에서 CriticalSection 사용시 문제 LLVM Clang때문 인가요? CodeMaster 4742 2015/03/05
72434             Re:Re:Re:[질문]64bit 멀티스레드 프로그램에서 CriticalSection 사용시 문제 LLVM Clang때문 인가요? 4423 2015/03/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.