Conceptually, if multiple master documents are processed by interscript, elaboration of each document is performed in a separate thread. The master frame contains thread local data, whereas the process frame is shared by all threads.
At the 'document' level, the failure to generate a document correctly is at most fatal to that thread of control because documents are in some senses independent. However, when multiple documents form a project, inter-document dependencies may dictate abortion of the whole processes if one of the master threads fails.
1: #line 23 "master_frame.ipk" 2: from interscript.frames.passf import pass_frame 3: from interscript.drivers.sources.disk import parse_source_filename 4: import pickle 5: 6: class master_frame: 7: def __init__(self,process,argument_frame): 8: self.process = process 9: for k in argument_frame.__dict__.keys(): 10: if process.verbosity > 4: 11: print 'setting MASTER',k,'as',argument_frame.__dict__[k] 12: setattr(self,k,argument_frame.__dict__[k]) 13: self.ids = {} 14: self.iflist = [] 15: self.flist = [] 16: self.fdict = {} 17: self.toc = [] 18: self.include_files = [] 19: self.classes = {} 20: self.functions = {} 21: self.sequence_limit = -1 22: self.section_index = {} 23: self.tests = {} 24: self.persistent_frames = {} 25: if self.usecache: 26: self.cache_name =parse_source_filename( 27: self.filename+'.cache', self.source_prefix) [3] 28: try: 29: cache = open(self.cache_name,'r') 30: self.persistent_frames = pickle.load(cache) 31: cache.close() 32: del cache 33: except KeyboardInterrupt: raise 34: except: pass 35: