It's not allowed, but it shouldn't be a problem. Only one callback will be called at a time, so you may not need any sort of lock at all. If you do need something (because the data structure is in some limbo state between callbacks), you can just use a variable as a flag.
-- Murphy On Mar 28, 2011, at 9:40 AM, Vishal wrote: > Thanks Murphy. I add a timer based call back mechanism, as you suggested, to > schedule sending data on socket. > > Just wanted to confirm one more thing: > > Is creating my own lock using thread.allocate_lock() allowed or not ? Since, > you mentioned thread is not allowed. > > I have a data structure which is updated in different call backs like > openflow_datapath_join etc.. and this data structure needs to be sent to the > remote server when the timer gives the call back. > > Regards, > Vishal > > On Mon, Mar 28, 2011 at 10:32 AM, Murphy McCauley <[email protected]> wrote: > Using threads from within Python in NOX is basically out. You have a number > of other options. > > If you just want to do something every second, maybe you can get away with > using your socket code and just scheduling a timer callback (pyswitch does > this to expire entries). You will have to be somewhat careful to not block > (for long), though. > > Two other possibilities are to use the messenger/jsonmessenger component > (which is how the GUI communicates with the monitoring component), or making > use of Twisted. Kyriakos just mentioned these in a bit more detail on the > mailing list the other day in the "Blocking Modules" thread. > > -- Murphy > > On Mar 28, 2011, at 7:10 AM, Vishal wrote: > > > Hi All, > > > > in the "install" function of pyswitch - I am starting a thread > > [thread.start_new_thread ()], which makes a socket connection to another > > server and sends some data every 1 second. > > > > I am observing that the thread is started but cannot send the data every 1 > > second... it is not scheduled for 5-10 seconds....and sends data randomly > > with lot of delay. > > > > Is there something wrong I am doing? or is there a scheduler where I need > > to register the thread ? (an app level thread scheduler) or twisted etc is > > interfering ? > > > > Any help is appreciated as I am new to python. > > > > Thanks a lot, > > Vishal > > > > For running: I have modified pyswitch.py and restarted the nox_core with > > it.. > > > > The function is below: > > def serveclient(self): > > print 'serveclient' > > print self.host,self.port > > s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > > s.connect((self.add_host,self.add_port)) > > print "connected" > > while 1: > > s.send('test data') > > time.sleep(1) > > s.close() > > > > > > > > > > _______________________________________________ > > nox-dev mailing list > > [email protected] > > http://noxrepo.org/mailman/listinfo/nox-dev > >
_______________________________________________ nox-dev mailing list [email protected] http://noxrepo.org/mailman/listinfo/nox-dev
