LGTM, thanks. -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Homer Hsing Sent: Monday, October 21, 2013 4:31 PM To: [email protected] Subject: [Beignet] [PATCH] add a semaphore for clang lib
Signed-off-by: Homer Hsing <[email protected]> --- backend/src/backend/gen_program.cpp | 6 ++++++ backend/src/backend/gen_program.h | 3 +++ backend/src/backend/program.cpp | 6 +++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/backend/src/backend/gen_program.cpp b/backend/src/backend/gen_program.cpp index 33f07b2..781152d 100644 --- a/backend/src/backend/gen_program.cpp +++ b/backend/src/backend/gen_program.cpp @@ -160,3 +160,9 @@ void genSetupCallBacks(void) gbe_program_new_from_llvm = gbe::genProgramNewFromLLVM; } +sem_t llvm_semaphore; + +void genSetupLLVMSemaphore(void) +{ + sem_init(&llvm_semaphore, 0, 1); +} diff --git a/backend/src/backend/gen_program.h b/backend/src/backend/gen_program.h index 9fae2e7..a498a5d 100644 --- a/backend/src/backend/gen_program.h +++ b/backend/src/backend/gen_program.h @@ -29,9 +29,12 @@ #include <stdint.h> #include <stdlib.h> +#include <semaphore.h> /*! This will make the compiler output Gen ISA code */ extern void genSetupCallBacks(void); +extern sem_t llvm_semaphore; +extern void genSetupLLVMSemaphore(void); #endif /* __GBE_GEN_PROGRAM_H__ */ diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp index b2879a4..205f7f2 100644 --- a/backend/src/backend/program.cpp +++ b/backend/src/backend/program.cpp @@ -553,7 +553,10 @@ namespace gbe { // Create an action and make the compiler instance carry it out llvm::OwningPtr<clang::CodeGenAction> Act(new clang::EmitLLVMOnlyAction()); - if (!Clang.ExecuteAction(*Act)) + sem_wait(&llvm_semaphore); + auto retVal = Clang.ExecuteAction(*Act); + sem_post(&llvm_semaphore); + if (!retVal) return; llvm::Module *module = Act->takeModule(); @@ -847,6 +850,7 @@ namespace gbe gbe_get_image_base_index = gbe::getImageBaseIndex; gbe_set_image_base_index = gbe::setImageBaseIndex; genSetupCallBacks(); + genSetupLLVMSemaphore(); } }; -- 1.8.3.2 _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
