2014-03-12 2 views
1

내가 enqueuewait_until_empty으로 스레드 빌딩 블록task_arena 클래스를 사용하는 방법의 예를 찾고 있어요와 TBB의 task_arena 클래스를 사용합니다.어떻게 대기열 및 wait_until_empty

다음 절차는 다음과 같습니다.

#define TBB_PREVIEW_TASK_ARENA 1 
#include "tbb/task.h" 
#include “tbb/task_arena.h” 

그런 다음, tbb::task::allocate_root으로 작업을 생성하고 tbb::arena::enqueue를 사용하여 대기열 : 위의 문서에 설명 된 바와 같이,이 포함 추가 할 수 있습니다.

는 그러나, 나는 경기장 wait_until_empty() 방법에이 오류가 나타날 수

오류 : '클래스 TBB :: interface7 :: task_arena'내가 가장 'wait_until_empty'

라는 이름의 멤버 사용하지하고있다 현재 출시 버전 4.3, 업데이트 3

간단한 작업 예제를 제공하십시오.

답변

2

wait_until_empty 메서드는 최근 업데이트 된 task_arena 클래스에서 제거되었습니다. 불행히도 참조하는 software.intel.com의 설명서는 아직 업데이트되지 않았습니다. 더 많은 최신 정보 인 threadingbuildingblocks.org에있는 설명서를 사용하는 것이 좋습니다.

해당 설명서 페이지의 예는 task_arenatask_group을 결합하여 wait_until_empty과 유사한 기능을 수행하는 방법을 보여줍니다.

+0

감사합니다. 시나리오는 다음과 같이 시작하는 간단한 프로그램입니다.'''enqueue'''를 사용하여 많은 작업을 대기열에 넣은 다음 종료됩니다. 프로그램이 종료되기 전에 모든 작업이 완료되었는지 어떻게 확인해야합니까? –

+0

문서가'''enqueue'''를 사용하여 추가 예제로 업데이트되면 좋을 것입니다. –