Your problem lies somewhere in the use of the Process class, not with global variables.
If you replace your "p = ..." and "p.start()" lines with a direct call to self.handle_connection(), your code works as expected. I don't know much about the multiprocessing module, so I can't really comment on what you're doing wrong, but I hope this points you in the right direction. Sorry I couldn't be of more help, Daniel On Tue, Aug 3, 2010 at 9:48 PM, Navkirat Singh <navkir...@gmail.com> wrote: > > On 04-Aug-2010, at 9:46 AM, Daniel da Silva wrote: > > Please post approximate code that actually works and displays the problem. > > On Tue, Aug 3, 2010 at 9:00 PM, Navkirat Singh <navkir...@gmail.com>wrote: > >> Hey guys, >> >> I am using a multiprocessing program, where the new process is supposed to >> change a variable in the main class that it branches out from. This is >> somehow not working, following is an approximate code. Would really >> appreciate any insight into this matter: >> >> >> var = {} >> >> class Something(): >> >> def set_var(self): >> global var >> var = somevalue >> >> def get_var(self): >> return var >> >> def newprocess(self): >> self.set_var() >> >> def do_multiprocessing(self): >> while true: >> self.get_var() >> new_process = process(target=newprocess) >> new_process.start() >> >> >> I am really confused here ! >> >> Any help would be awesome : ) >> >> Regards, >> Nav >> >> -- >> http://mail.python.org/mailman/listinfo/python-list >> > > > This is a working code, streamlined, but it is where the problem is: > > from multiprocessing import * > > dicts = 0 > print('global ', dicts) > > class WebServer(): > def set_sessionInfo(self): > global dicts > dicts = dicts + 1 > def get_sessionInfo(self): > return dicts > > def handle_connection(self): > self.set_sessionInfo() > def serve_forever(self): > for x in range(10): > p = Process(target=self.handle_connection) > p.start() > print(self.get_sessionInfo()) > ws = WebServer() > ws.serve_forever() > print(dicts) > > >
-- http://mail.python.org/mailman/listinfo/python-list