diff options
author | Hieu Hoang <hieuhoang@gmail.com> | 2020-10-06 01:39:26 +0300 |
---|---|---|
committer | Hieu Hoang <hieuhoang@gmail.com> | 2020-10-06 01:39:26 +0300 |
commit | 74e2e11bfaab3920af808a8ffeab0be8e836f90b (patch) | |
tree | cb88e357d97ffc70ab126d2be2c7d9482dcff54e | |
parent | dd638e16f5af7ded5b82eb942fec3d06294046d7 (diff) |
thread-safe
-rw-r--r-- | moses2/TranslationModel/MSPT/MSPT.cpp | 8 | ||||
-rw-r--r-- | moses2/TranslationModel/MSPT/MSPT.h | 3 |
2 files changed, 7 insertions, 4 deletions
diff --git a/moses2/TranslationModel/MSPT/MSPT.cpp b/moses2/TranslationModel/MSPT/MSPT.cpp index eb06fda21..a30169f29 100644 --- a/moses2/TranslationModel/MSPT/MSPT.cpp +++ b/moses2/TranslationModel/MSPT/MSPT.cpp @@ -36,13 +36,12 @@ using namespace std; namespace Moses2 { - +thread_local MSPT::PBNODE *MSPT::m_rootPb; //////////////////////////////////////////////////////////////////////// MSPT::MSPT(size_t startInd, const std::string &line) :PhraseTable(startInd, line) - ,m_rootPb(NULL) { ReadParameters(); } @@ -57,7 +56,6 @@ void MSPT::CreatePTForInput(const ManagerBase &mgr, string phraseTableString) //cerr << "In CreatePTForInput" << endl << flush; const System &system = mgr.system; FactorCollection &vocab = system.GetVocab(); - MemPool &systemPool = system.GetSystemPool(); MemPool &pool = mgr.GetPool(); MemPool tmpSourcePool; @@ -148,6 +146,10 @@ TargetPhrases* MSPT::Lookup(const Manager &mgr, MemPool &pool, return tps; } +void MSPT::CleanUpAfterSentenceProcessing(const System &system, const InputType &input) const { + delete m_rootPb; +} + void MSPT::InitActiveChart( MemPool &pool, const SCFG::Manager &mgr, diff --git a/moses2/TranslationModel/MSPT/MSPT.h b/moses2/TranslationModel/MSPT/MSPT.h index f13fe5847..fe37e34b9 100644 --- a/moses2/TranslationModel/MSPT/MSPT.h +++ b/moses2/TranslationModel/MSPT/MSPT.h @@ -66,9 +66,10 @@ public: SCFG::InputPath &path) const; virtual void InitializeForInput(const ManagerBase &mgr, const InputType &input); + virtual void CleanUpAfterSentenceProcessing(const System &system, const InputType &input) const; protected: - PBNODE *m_rootPb; + thread_local static PBNODE *m_rootPb; void LookupGivenNode( MemPool &pool, |