jchristman / PyDA

Python binary DisAssembler
http://suntzuii.github.io/PyDA/
Other
26 stars 10 forks source link

Adjust current functionality to work with multiprocessing #52

Closed jchristman closed 10 years ago

jchristman commented 10 years ago

Any functions that need access to the data structure must do two things to access the other process.

1) Add a function call to the concurrent/futures.py DisassemblerInterface (see existing ones in that object - it is at the bottom of the file) with the appropriate arguments. These arguments will be put into a tuple, associated with a command string, pickled and sent to the disassembler process via a multiprocessing.PIPE. You can call this new function via the interface/app.disassembler object. For example, in maininterface.py we pass a reference to self.app.disassembler to the textbox, which can then call .get(), .length(), etc and the DisassemblerInterface will take care of the interprocess communication.

2) You need to add a decoder to the other process in disassembler/Disassembler.py execute method. This method is called with the command string built in the DisassemblerInterface and the unpickled arguments tuple, which can be passed straight to the correct function in the data structure. See the existing functions for an example of how to do it.

direwolf314 commented 10 years ago

As far as I can tell, this should be done now.