1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-06-13 04:37:05 +01:00

Fixed seg fault for observable modules

This commit is contained in:
Guido Cossu
2017-03-17 13:59:31 +09:00
parent 6d1e9e5f92
commit 91886068fe
26 changed files with 121 additions and 234 deletions

View File

@ -41,13 +41,14 @@ class ObservableModule
public:
typedef HMCModuleBase< QCD::HmcObservable< typename ObservableType::Field> > Base;
typedef typename Base::Product Product;
typedef OPar Parameters;
std::unique_ptr<ObservableType> ObservablePtr;
ObservableModule(OPar Par) : Parametrized<OPar>(Par) {}
virtual void print_parameters(){
std::cout << this->Par_ << std::endl;
Parametrized<OPar>::print_parameters();
}
template <class ReaderClass>
@ -79,14 +80,18 @@ class PlaquetteObsParameters : Serializable {
};
template < class Impl >
class PlaquetteMod: public ObservableModule<PlaquetteLogger<Impl>, PlaquetteObsParameters>{
typedef ObservableModule<PlaquetteLogger<Impl>, PlaquetteObsParameters> ObsBase;
class PlaquetteMod: public ObservableModule<PlaquetteLogger<Impl>, NoParameters>{
typedef ObservableModule<PlaquetteLogger<Impl>, NoParameters> ObsBase;
using ObsBase::ObsBase; // for constructors
// acquire resource
virtual void initialize(){
this->ObservablePtr.reset(new PlaquetteLogger<Impl>(this->Par_.output_prefix));
this->ObservablePtr.reset(new PlaquetteLogger<Impl>());
}
public:
PlaquetteMod(): ObsBase(NoParameters()){}
};