[00:05] *** eikenberry has joined #kamaelia |
[01:31] *** tdobson has joined #kamaelia |
[04:36] *** salmon_ has joined #kamaelia |
[04:52] *** Lawouach_ has joined #kamaelia |
[05:26] *** Lawouach_ has joined #kamaelia |
[05:26] < Lawouach_> hi guys |
[06:55] < MS-> morning |
[06:56] < Lawouach_> damn |
[06:56] < Lawouach_> I'm trying to run kamaelia and cherrypy with multiprocessing |
[06:57] < Lawouach_> but since multiprocessing forks children and since the scheduler and the cherrypy.engine are global module level instances |
[06:57] < Lawouach_> the children all share the same objects |
[06:57] < Lawouach_> grumble :( |
[06:57] < MS-> That's why the scheduler has the zap option... |
[06:58] *** Uraeus has joined #kamaelia |
[06:58] < Lawouach_> hmmm? |
[06:59] < MS-> If you look at |
[06:59] < MS-> http://kamaelia.googlecode.com/svn/trunk/Code/Python/Axon/Axon/experimental/Process.py |
[06:59] < MS-> It has the same issue in |
[06:59] < MS-> ProcessWrap |
[06:59] < MS-> So .activate() calls .run() |
[06:59] < MS-> .run() wraps .main() |
[06:59] < MS-> BUT .run() is the start of a new process, probably from a running kamaelia system |
[07:00] < MS-> (or can be |
[07:00] < MS-> sp it zaps the scheduler |
[07:00] < MS-> background(zap=True).start() |
[07:01] < MS-> Without doing that you end up with really wierd effects |
[07:01] < Lawouach_> let me see |
[07:01] < MS-> It's not the cleanest code in the world I'll grant you |
[07:01] < MS-> but it does run. The key thing really is to replace the scheduler with a zapped one |
[07:02] < MS-> There may also be latent bugs which I've not found :) |
[07:02] < Lawouach_> right |
[07:03] < Lawouach_> I'll try replacing the scheduler from my child process |
[07:03] < MS-> But it does work |
[07:03] < Lawouach_> I'd rather avoid using background |
[07:03] *** MS- nods |
[07:03] < Lawouach_> though |
[07:03] < Lawouach_> let me think |
[07:03] < Lawouach_> I'll try |
[07:03] < Lawouach_> ta |
[07:25] *** vmlemon has joined #kamaelia |
[07:26] *** Uraeus has joined #kamaelia |
[08:05] < Lawouach_> using a code similar to zap (basically creating a new instance of the scheduler) still gives me the same object if from any of my children |
[08:05] < Lawouach_> off to lunch, need to rethink about all of this |
[08:05] < Lawouach_> something's broken |
[08:11] *** SamHasler has joined #kamaelia |
[09:22] < Lawouach_> back |
[09:22] < Lawouach_> right, well I've thought about it and rather than trying to ensure the unicity of the secheduler instance or the CherryPy engine |
[09:23] < Lawouach_> I'm gonna seperate my code so that I run each application in its own Python script started from the command line one by one |
[09:23] < Lawouach_> rather than forking that is |
[09:39] < Lawouach_> sorry if I sounded harsh by the way, I was frustrated :) |
[09:44] *** vmlemon_ has joined #kamaelia |
[09:56] *** Lawouach_ has joined #kamaelia |
[10:06] *** MS- has joined #kamaelia |
[10:06] < MS-> OK, I appear to have a simple dirac based webcam video recorder now |
[10:06] < MS-> Now, how to add audio sensibly. |
[10:07] < vmlemon_> Cool |
[10:07] < MS-> Reliable capture is more important than reliable playback after all. |
[10:07] < MS-> (The latter can be solved by other means) |
[10:09] *** Lawouach_ has joined #kamaelia |
[10:16] *** Davbo has joined #kamaelia |
[11:02] *** Davbo_ has joined #kamaelia |
[11:32] *** vmlemon_ has joined #kamaelia |
[12:24] < Lawouach_> I think I've fixed that leak :) |
[12:25] < MS-> Cool :) |
[12:25] < MS-> congrats |
[12:25] < MS-> :) |
[12:26] < Lawouach_> ta |
[12:26] < Lawouach_> mostly some trailing components |
[12:29] < Lawouach_> MS-: what value of slowmo do you usualy use? |
[12:29] < Lawouach_> I find that 0 isn't good CPU wise |
[12:30] < Lawouach_> but 0.02 isn't as good as I thought |
[12:30] < Lawouach_> my CPU is still at around 2% (both cores) |
[12:30] < MS-> I don't tend to use slowmo - I tend to try to change components to pause ... |
[12:31] < MS-> Though if I was doing I'd probably use something like 0.1 as an upper value |
[12:31] < MS-> since it's just a time.sleep() in the code |
[12:31] < MS-> It doesn't sleep *completely* so that threads can awaken the scheduler |
[12:31] < MS-> eg the selector :) |
[12:40] *** salmon_ has joined #kamaelia |
[12:41] *** salmon_ has joined #kamaelia |
[12:44] *** Lawouach_ has joined #kamaelia |
[14:21] *** SamHasler_ has joined #kamaelia |
[15:33] *** eikenberry has joined #kamaelia |
[18:47] *** vmlemon_ has joined #kamaelia |
[19:26] *** vmlemon_ has joined #kamaelia |
[20:44] *** vmlemon_ has joined #kamaelia |
[22:02] *** vmlemon_1 has joined #kamaelia |
[22:05] *** vmlemon_2 has joined #kamaelia |
[22:08] *** vmlemon_3 has joined #kamaelia |