/srv/irclogs.ubuntu.com/2007/10/08/#upstart.txt

=== Amaranth [n=travis@ubuntu/member/Amaranth] has joined #upstart
=== jelmer [n=jelmer@157pc196.sshunet.nl] has joined #upstart
=== Amaranth [n=travis@ubuntu/member/Amaranth] has joined #upstart
=== int0x0c [n=ben@161.253.14.157] has joined #upstart
=== GodEater_ [n=bryan@rockbox/staff/GodEater] has joined #upstart
=== juergbi [n=juerg@80-219-21-79.dclient.hispeed.ch] has joined #upstart
=== Md [i=md@freenode/staff/md] has joined #upstart
=== Amaranth [n=travis@ubuntu/member/Amaranth] has joined #upstart
=== Md [i=md@freenode/staff/md] has joined #upstart
=== Amaranth [n=travis@ubuntu/member/Amaranth] has joined #upstart
=== Keybuk [n=scott@wing-commander.netsplit.com] has joined #upstart
=== Amaranth_ [n=travis@ubuntu/member/Amaranth] has joined #upstart
Keybukhmm, momentary thoughts on bug tracking03:02
Keybukis "logd not working" a bug?03:02
Keybukor is it simply wishlist03:03
Jc2kis it a regression?03:03
Jc2kif it never worked, its a wishlist IMO03:03
Keybukit worked once, then we disabled it03:03
Keybukthe reason I wonder is that the "triaged" state doesn't make sense for it03:03
Jc2kurrrgh03:03
Keybuk(or some of the other bugs in there)03:04
KeybukConfirmed - there's enough information to replicate the bu03:04
KeybukTriaged - there's enough information to fix the bug03:04
Keybukbut for things like that, neither makes sense03:04
Keybukwhich is why I wonder whether it's a wishlist03:04
Jc2kits a regression so in one sense its a bug. but its not really fatal to anything so more of a wishlist item..03:05
Keybukyeah, tricky innit03:05
Jc2kaye03:06
Jc2ktoss a coin?03:06
Jc2kheads its a wishlist03:06
Jc2k;)03:06
Jc2khad any more upstart related thoughtlets?03:07
Keybuknot yet03:09
Jc2kim not sure what to do for my needs :(03:11
Keybukwhat were those again?03:12
Jc2kone example is for syncing windows mobile devices03:13
Jc2ksynce.org has a couple of daemon type progs it needs03:13
Jc2ki dont really like the idea of them running constantly03:13
Jc2kso wanted to try using hal events to start them03:13
Jc2ki had been thinking hal -> upstart03:14
Jc2kon top of that, there are quite a few devices that need you to ppp them before they are useful. network manager could be used for that in the future, but i dont know how far off such things are...03:18
Keybukah yes, I remember03:23
Keybukmonths off, at least03:26
Jc2kideally i'd like to have this stuff auto-magicked by then03:37
Jc2ki think the guy i was talking to on ubuntu-devel-discuss was hoping to have something pretty for HH...03:37
Keybukoh, who was that?03:38
Jc2ki think Martin Owens03:39
Jc2kwe had cultural differences between yorkshire and liverpool..03:40
Jc2k:)03:40
Keybukthe sync project stuff?03:41
Jc2kaye03:44
Keybukyeah, there's a few people working on that for 8.0403:45
Jc2knice that they are getting in touch...03:47
Keybukhow do you mean?03:47
Jc2ki've not heard anything from martin or anyone else and theres been no mention of it on ubuntu dd03:48
Keybukwouldn't be yet03:48
Keybukwe're still in the 7.10 release cycle03:48
Jc2kahh03:48
Keybuk8.04 doesn't begin for another couple of weeks03:48
Jc2ki know that theres a RH guy really interested in Conduit, so i was hoping to get a bit of cross-distro love03:49
Jc2kbut i really want some flashy "here i am plugging in my phone and it just working" demo before i go pimping again! :)03:49
Keybukthe trouble with cross-distro love is that the distros don't tend to love each other ;)03:50
Jc2kaye :(03:50
Jc2ki'll love the distro that loves me i guess03:51
Jc2kunfortunately there arent any local (at least inside UK) get togethers i know of in the near term where I can pimp Conduit and/or get help with the fiddly polishy bits needed to support some of the devices we want to support03:52
Jc2ki think the nearest is going to be, ironic as its so far, linux conf au03:53
Jc2kor lug radio us03:53
=== Jc2k is still angry he missed guadec
Jc2kKeybuk: think i'm going to resort to "pupstart" unless you have any ideas.04:16
Jc2ki.e. a subset of upstart in python solely focused on my simple needs04:16
Keybukinit can't be written in Python04:17
Keybukyou'll end up with a machine full of zombie processes, and a non-functioning init :p04:17
Keybuk(not without rewriting the C bits of Python, anyway)04:17
Jc2keh04:18
Jc2kit wouldnt be init04:18
Keybukwhat would it be then?04:19
Jc2ksome event -> start a program, some event -> stop a program04:19
Jc2kprimarily hal events04:19
Keybukif it's not an init daemon, please don't call it "upstart" or anything even similar04:20
Jc2kand able to deal with multiple copies of same programs04:20
Keybukotherwise that will just confuse people04:20
Jc2kok04:20
Keybukyou already have that though -- it's called D-BUS :p04:20
Jc2keh04:20
Jc2kreally?04:20
Keybukthat does most of it already04:21
Jc2kdo i have to add dbus to everything though04:21
Keybukprobably04:21
Keybukthis is not a bad thing04:21
Jc2kalas a bit much for my weak C skills04:22
Jc2kmight be doable for the synce case though04:22
ion_Perhaps gutsy just contains too old versions of opensync and conduit, but i dont seem to be able to sync two evolutions over the network using either one. :-\04:23
=== Keybuk hasn't tried that yet
Keybuk   conduit |    0.3.2-1 | http://gb.archive.ubuntu.com gutsy/universe Packages04:24
Jc2ki wet myself when i made the video.04:24
Keybuk  opensync | 0.19-1.2ubuntu1 | http://gb.archive.ubuntu.com gutsy/main Sources04:24
ion_(d be nice if conduit and opensync were integrated somehow, btw.)04:24
Jc2kits *really* sweet04:24
Jc2kconduit is up to 0.3.404:24
Jc2kthe network sync hasn't been released, you need to run svn04:24
Jc2kopensync, 0.19 is ancient.04:25
Jc2kion_: i'm working to let opensync be used from conduit04:25
ion_Nice04:25
Keybuknothing newer in Debian04:25
Jc2katm i am able to use opensync plugins in conduit04:25
Jc2kand hoping to support multiple sync engines soon too04:25
Jc2kmeant to be going to germany to collaborate with them soon04:26
Jc2kanyway, if there are any conduit questions im happy to answer on #conduit (GIMPnet), but back on topic04:27
Jc2kdoing this all in dbus has implications on the scope of upstart?04:28
Jc2ke.g. equally some of boot up (sh/w)ould be handled by the dbus system activation patches?04:28
Keybukyes04:29
Keybukin a 100% new-world desktop, the only init supervised services would be udev/hal, d-bus and gdm04:30
Keybuk(though that ignores things like mounting filesystems, etc. - but then RH have a single shell script for all that)04:30
Jc2kwhat about crashes04:30
Jc2kshould some of these dbus triggered services self-heal or just wait to be needed04:31
Keybukwho knows04:31
Jc2k:)04:31
Keybukthis is why Upstart development has stalled for a while04:31
Keybukfiguring out how it fits in04:31
Jc2kthe thing i still dont understand in the new-world desktop is how services die.04:32
Jc2ki want things to go away..04:32
KeybukI think we have to consider D-BUS signals a key part of the system04:34
Keybukwhich means that they need to be able to start and stop processes on their own04:34
Keybukit makes sense to have a ServiceManager daemon that handles this04:35
Keybukwhich makes room for Upstart04:35
Keybuk(it then makes sense for D-BUS and HAL to use that ServiceManager for their own activation purposes)04:35
Keybukthe difficulty comes in two stages:04:35
Keybuk 1) how are D-BUS signals captured, and converted into useful environment for the service being started04:35
Keybuk 2) what about events that aren't D-BUS signals yet?04:35
Jc2kit depends on what information will be needed for (2), but from the outsider position wrapper seems doable to inject faux dbus signals04:37
Keybukthe annoying thing is how hard D-BUS signals are to define04:37
Jc2kaye04:37
Jc2kperhaps the hal path, key, value approach would work?04:38
Jc2kthe signal would always be a path, key and value04:39
Jc2kor perhaps a list of04:39
KeybukThe DpmsModeChanged signal in the org.gnome.PowerManager interface emitted from the /org/gnome/PowerManager object by the org.gnome.PowerManager service04:39
=== Jc2k grumbles at dbus
Jc2ki was thinking we'd be able to control all the signals, but of course we might want to respond to other signals04:40
Keybuk(and that's for objects you can name!  You can't reliably name objects from HAL!)04:40
Jc2kso artificially restricting the kinds of signals that are interesting is not possible...04:40
Keybukyeah04:41
Jc2kis dbus introspectable enough from C land that we could have a FDI-alike?04:41
Keybukyes04:42
Keybukbut then we're in FDI hell04:42
Jc2kwith great power comes great pains in the butt04:42
Keybukand sometimes a signal is just a signal04:42
Keybukand contains no useful information04:42
Keybukyou need to make an object call to obtain the information about the signal04:43
Jc2kand at this point we have a desire for a minimal scripting language04:43
Jc2kand the equal opposite desire for fear of the untold danger involved in such a thing04:44
Keybukso you can see why this needs careful thought :p04:44
Jc2kindeed.04:44
Jc2khopefully pestering you will help you decide whats best ;)04:44
Keybukheh04:45
KeybukI haven't had time to sit down and understand D-BUS04:45
Keybukand more particularly, how it's used04:45
Keybukif I had a list of the signals, methods, etc. that all the usual desktop bits generated, then I would have a better idea04:46
Keybuksince that would infer what to listen for04:46
Jc2keh04:46
Jc2ki've tried to understand it04:46
Jc2kand i hurted :P04:47
Jc2kthe current case seems to be that the initial uses of dbus were a bit crap and not how the API was intended to be used04:47
Jc2kbut that this is improving04:47
Keybukyeah04:48
Keybukbut they won't drop them :p04:48
Jc2k:p04:48
Jc2ki had an idea05:22
Jc2kthen i tried to replay it in my head05:22
Jc2kand forgot the best bit05:22
Jc2k-_-05:22
Jc2ki hate jet lag05:22
AlexExtreme<Keybuk> 15:17:12> +init can't be written in Python05:22
AlexExtreme<Keybuk> 15:17:25> +you'll end up with a machine full of zombie processes, and a non-functioning init :p05:22
AlexExtreme^^ pardus wrote their init in python ;)05:22
Jc2kAlexExtreme: i knew there was one distro that did, forgot its name.. thx05:23
Jc2kwait05:23
AlexExtremealthough, it's rather buggy :P05:23
Jc2kAlexExtreme: have i seen you in #ylug or #lugradio at all?05:24
AlexExtremeI don't think so05:24
AlexExtremeat least, I don't remember ever being in either of those05:24
Jc2khmmm05:24
Jc2kits going to bother me now :)05:24
KeybukAlexExtreme: heh05:25
Keybukthe Python problem is that it doesn't handle signals properly05:25
Keybukit handles them well enough for user space05:25
Keybukbut init has different signal semantics05:25
AlexExtremeyes05:26
=== Jc2k tries to remember his idea
Jc2ki was thinking along the lines of mapping the entire boot sequence and saying which things belonged to dbus activation and which things still need init and any other categories along the way05:28
Jc2ki was also thinking that this whole stalemate is because of the big picture05:29
Jc2ktrying to make sure upstart is ready for everything, without even knowing what everything is05:29
Jc2kon the python thing05:31
Jc2kcould init be chained?05:32
Jc2kas in, the actual init just starts a python init which is then "orginary"05:32
Jc2kperhaps the "raw" upstart has the service start/stop api05:32
Jc2ke.g. org.something.ServiceManager05:33
Jc2kand then python pokes the other services05:33
Keybukthe python init is still not ordinary05:34
Keybuksince it's still pid #105:34
Jc2keh05:34
Keybukunless the python process was forked05:35
Keybukin which case, you lose the special powers you get as pid #105:35
Keybukwhich are the reason to be pid #1 in the first place05:35
Jc2ki was going for making the special powers to be dbus exposed05:35
Keybuksplitting Upstart into a ServiceManager component and a ServiceActivator component has been discussed05:35
Keybukthe thought was that /sbin/init would be pid #105:35
Keybukand would expose the org.freedesktop.ServiceManager interface05:36
Keybukand then you'd start other things that used that interface to start and stop processes05:36
Keybukthough it's not clear how you handle blocking in that scenario05:36
Keybuk(where when you start apache, it blocks waiting for other services to start first)05:36
Jc2kand presumably in that case the ServiceActivator is "normal"?05:38
Jc2kdont really grok the apache case. are you saying that apache shouldnt start until other things are ready, or that other things shouldnt start until apache is ready?05:39
Keybukboth05:40
AmaranthJc2k: Both05:40
Amaranthheh05:40
Keybukif you've got tomcat installed, it should be started if apache is starting05:40
Keybukand apache should wait until tomcat is started before continuing05:41
Jc2khow is that handled in the current case? the init script doesnt exit until apache is ready?05:41
Jc2ksorry for nub questions btw05:41
Keybukcurrent case?05:41
Jc2kas in, why does moving to ServiceManager  ServiceActivator make this different?05:42
Jc2kpresumably ServiceManager can just issue a signal when a process is loaded?05:42
Jc2kkind of like Twisted has Defer's05:43
Keybukbut then ServiceManager has to block :)05:43
Keybukie. when does it decide to carry on05:43
Jc2kwhen the signal fires?05:43
Jc2ki imagine it would be painful in C land, but twisted python is pretty good at pausing where its at until a signal completes05:44
Keybukbut D-BUS has no notion of signal completion05:45
Keybukit'd actually need to be a method05:45
Keybukwhich is somewhat kooky, since who is the method against?05:45
Amaranthor fire a 'finished' signal05:45
Jc2kmaybe "completes" was a bad choice05:45
Jc2ki call StartProcess and then attach to a signal called ProcessStarted05:46
Jc2kalso dbus does have a way to specify a function to call when the method completes05:47
Jc2kso you can StartProcess(some, params, reply_handler=self.Started_Cb)05:47
Jc2kwhere self is an object containing enough info to carry on05:47
Keybukerr?05:48
Keybuksorry, not following05:48
Jc2k1s05:48
Jc2kKeybuk: http://pastebin.com/d80f7e06 <- make any sense?05:59
Jc2kaside from the fact that its not even close to valid python...06:00
Amaranthit's pretty close :)06:03
Jc2kAmaranth: i puked when i re-read it.06:03
KeybukJc2k: the problem is, how does the StupidManager send out the message that the job is starting06:10
Keybukand thereby give other processes the option to handle that message, and delay the starting of the job06:10
Amaranthoh, uh, ouch06:10
Jc2kKeybuk: i guess that such delays should be handled before you go to ServiceManager06:12
Jc2k?06:12
Jc2kactually no06:14
Jc2kso theres a difference between the Apache job and the apache process?06:15
Keybukdunno06:15
Jc2kyou start ./apache and ./tomcot before  the apache "job" is ready06:15
Jc2k*tomcat even06:15
=== Jc2k abuses ./ for visual clarity rather than noobness
Jc2kKeybuk: are you going to be near IRC tonight?06:21
Keybukyeah probably06:21
Jc2kokies06:21
Jc2ki have to commute for a bit now, so i'll think about another version of my pastebin 06:22
Jc2kit will treat a job as something different from a process06:22
Jc2kwhich i think is the key to it satisfy your needs06:22
Keybukinteresting06:40
Keybukso GNOME Power Manager is entirely implemented through HAL D-BUS stuff06:40
Keybuksignal sender=:1.10 -> dest=(null destination) path=/org/freedesktop/PowerManagement; interface=org.freedesktop.PowerManagement; member=OnBatteryChanged06:41
Keybuk   boolean false06:41
Keybukactually, sorry, that's wrong06:42
Keybuksince that's not coming from HAL06:42
Keybukeven though the docs say it will06:42
=== Keybuk frowns
KeybukGNOME developers should be banned from uploading anything without docs06:46
Keybuk(says the author of the most undocumented init system there is :p)06:47
ion_:-)06:56
Keybukthough I'm making some kind of process06:57
Keybuke.g. "running while a battery is present"06:58
Keybuk=> listen to HAL for DeviceAdded/DeviceRemoved signals, take the object path and then check for the "battery" capability, it has it, check the "battery.present" property is "true"06:59
Keybuk(also obviously listen for changes to that property, as well as the NewCapability signal in case some existing object becomes a battery)07:00
Keybukso this requires a combination of method calls and signals07:01
Keybukthis strongly implies the need for upstart-addon-hal07:06
Keybuklikewise similar for avahi07:10
Keybuksince for that you need a ServiceBrowser for each thing you want to watch for07:10
=== Md [i=md@freenode/staff/md] has joined #upstart
=== bleinmono [n=toffel@ppp91-76-108-30.pppoe.mtu-net.ru] has joined #upstart
=== AlexExtreme [n=AlexExtr@frugalware/developer/AlexExtreme] has joined #upstart
=== bleinmono [n=toffel@ppp91-76-108-30.pppoe.mtu-net.ru] has left #upstart []
=== Jc2k is back home at last
Jc2kKeybuk: still not grokking the big problem09:11
Keybukit's quite complex to explain :-/09:12
Jc2ktell me about it09:12
Jc2ki feel like im missing something obvious09:12
Jc2kbefore upstart i implemented an event based job manager for my old company09:13
Jc2kevents were simpler there09:13
Jc2ktimer events, file change events and "job x finished" events09:13
Jc2keach job was dependant on multiple events09:13
Jc2kand then i had a set of god awful queries to work out which jobs were due to run09:14
Keybukright09:14
Jc2kthat could handle all kinds of edge cases09:14
Keybukit's the god awful bit that causes us issues09:14
Jc2kwell in my case, the god awful came from having to build it out of ms access and vbscript :P09:14
Keybukheh09:14
Keybukok, let me try and quickly explain09:15
Keybukjobs can be manually or automatically started and stopped09:15
Keybukmanual is by initctl, automatic is by events09:15
Keybukjobs also generate events themselves09:15
Keybukfour of them09:15
Keybuk starting = I'm about to start, but nothing has been run yet09:15
Keybuk started = I'm now running and ready for action09:15
Keybuk stopping = I'm about to stop, but nothing has been killed yet09:16
Keybuk stopped = I'm no longer running09:16
Keybukthus the events that jobs can be automatically started/stopped by aren't just external forces like battery status, but can also be based on other jobs09:16
Keybukso if HAL depends on D-BUS, it can be started by the "started dbus" event and stopped by the "stopping dbus" event09:16
Keybukthat way HAL is never running when d-bus isn't09:17
Jc2kgrokking so far09:17
Keybukevents in Upstart have the notion of completion09:17
Keybukinitctl emit foo will actually wait until that event emission has completed09:17
Keybukthe completion of an event is when all jobs that reacted to it have reached their goal state09:17
Keybuk(running for services, stopped again for tasks)09:17
Keybukso if I have a service that's started "on foo", "initctl emit foo" will actually show the progress of that service, and not return until that service is running09:18
Keybukthis means events also have failure09:18
Keybukif that service fails to start, initctl emit foo will actually exit 109:18
Keybuk(if no services are affected by the event, the event completes immediately)09:18
Keybukok?09:19
Jc2kgrokking :)09:19
Jc2kgood so far09:19
Keybukright09:19
Keybukso upstart uses this event completion internally for the starting and stopping job events09:20
Keybukwhen the service emits the starting event, it will not proceed until the starting event has completed09:20
Keybuklikewise for the stopping event09:20
Keybukso if I have a small task that's run "on stopping mysql" (e.g. to backup the database), mysql *will not be stopped* until that task completes09:20
Keybuksince services only need to reach running or stopped, this also provides upstart's dependency mechanism09:21
Jc2kso even though mysqld isnt running, the mysql "job" is still "stopping"09:21
Keybukno09:21
Keybukmysqld *IS* running09:21
Keybukupstart hasn't killed it yet09:21
Jc2kahh09:21
Jc2kok09:21
Keybuk(or it might not be, if mysqld died, but that's a different story :p)09:22
Jc2klol09:22
Keybukthe event does actually tell you why mysql is stopping09:22
Keybukon stopping mysql failed main09:22
Keybuk  EXIT_SIGNAL=SEGV09:22
Keybukfor example09:22
Keybukanyway, digressing09:23
Keybuksince services only need to reach running or stopping, this provides Upstart's dependency system09:23
Keybukthe tomcat server, if installed, is a dependency of Apache09:23
Keybuk(web sites use it)09:23
Keybukso the tomcat job can specify:09:23
Keybuk  start on starting apache09:23
Keybuk  stop on stopped apache09:23
Keybuknow, if you "start apache" the following will happen:09:24
Keybukthe apache job emits the starting apache event09:24
Keybukwhich starts the tomcat job (event is now blocked)09:24
Keybukthe tomcat job issues starting tomcat, runs its various scripts, and eventually the tomcat daemon is running09:24
Keybuktomcat job emits started tomcat09:24
Keybukand the event is now unblocked09:24
Keybukand thus the event completes09:24
Keybukapache can now start, run its various scripts, and the httpd daemon09:24
Keybukso the tomcat job, by being started when apache is starting (rather than started) can make itself a dependency of apache09:25
Keybuk(and rather usefully, it becomes tied to the lifecyle of apache - you don't have to think of it as a separate service)09:25
Jc2kgot it09:26
Jc2kso with start on starting apache we make sure tomcat starts before apache09:27
Keybukexactly09:27
Jc2kso i cant actually do my python demo without mixing in dependencies09:27
Keybukthis is the bit that's hard to implement with a separated service manager and automation manager core09:27
Keybuksince the service manager needs to be able to block the service on things that the automation manager knows09:28
Jc2ki still think i can do it with async dbus09:29
Jc2kthough i worry i missed something09:29
Keybukthe problem with dbus is that you need to specify someone to ask :)09:29
Keybuksignals have no completion09:29
Keybukso the starting/stopping events can't be signals09:29
Keybuk(we'd never know whether something cared)09:29
Keybukthey have to be methods09:29
Keybukand you can't have an open method09:29
Keybukyou have to know who you're asking09:29
Keybukat which point, why have two processes since they're inherently coupled anyway?09:30
Jc2kare we saying that the problem is that when ServiceManager raises a signal you no longer know what that signal is about?09:30
Keybukno09:31
Keybukthat it doesn't know whether anyone cared about the signal09:31
Keybukor whether those who cared about the signal did anything about it09:31
Jc2kthis is the bit where i dont get it :)09:31
Jc2kim ok up to where i said "i worry i missed something"09:32
Jc2kthen my world fell apart09:32
Keybukheh09:32
Keybukwhich bit don't you get?09:32
Keybukyou understand how Upstart events work wrt completion?>09:32
Jc2kapache is starting, but tomcat has to start first, so tomcat starts. apache is still in the starting state until tomcat is started.. then apache finishes starting and it is started...09:33
Jc2kall that stuff makes sense09:33
Keybukright09:34
Jc2ki dont understand how it breaks down when the service is split in 209:34
Jc2ki dont understand what is lost09:34
Keybukthe way that events work :)09:35
Keybukbecause D-BUS doesn't support that at all09:35
Jc2ki see that it doesnt support that natively09:36
Keybukexactly09:36
Keybukyou can't use signals to do it09:36
Keybukyou have to use methods09:36
Keybukdoes that make sense?09:36
Jc2kbut most of the state should be in the automation manager..09:37
Jc2kif i can prototype it, you buy me beer?09:37
Keybuk:)09:37
Keybuksure09:37
Keybukdoes it make sense that you can't use D-BUS signals?09:37
Keybukbecause they are fire-and-forget09:37
Jc2kkind of09:38
Jc2kim going to try to use async method calls first09:38
Keybukso the problem with method calls is that, in D-BUS, you must know your target09:39
KeybukI can't tell the world that a job is starting09:39
KeybukI can only tell one person09:39
Keybuk(I can tell the world with signals, but I cannot find out whether the world cared)09:39
Keybukwith a method, I can tell one person, and they can give me a result09:40
Keybukbut I have to hard-code that one person09:40
Jc2kright09:40
Jc2know i understand.09:40
Jc2kand i scratch my freshly shaved beard.09:40
Jc2kbut...09:41
Keybukso since the service manager would have the name of the policy bit hard-coded09:41
Keybukwhy have them separate at all? :p09:41
Jc2kno.09:41
Jc2kbrain failing... holding on to thread of something...09:41
Jc2ki think we are talking about different services09:41
Jc2kin my mind i was assuming that pid 1 *soley* starts and stops single processes09:42
Jc2kbut in actual fact09:42
Jc2kpid 1 starts and stops jobs09:42
Jc2kwhich is why the dependency stuff comes in and starts being awkward09:42
Jc2kin my mind i was thinking that was in pid 2 or wherever, hence why i didnt grok that there would be a problem09:43
Jc2kso essentially dbus sucks because you can ask it to do something, it can poke you and tell you something happened but it can't poke you and ask you a question09:44
Jc2kKeybuk: did that make sense?09:45
Keybukyup that makes sense09:46
KeybukI don't think you need to separate processes and jobs?09:46
Jc2kno, i just misunderstood a key point :P09:46
Jc2ki still have an idea, but i want to have a play with it first.09:47
Keybukok09:49
Jc2kthe basic idea is to flip it around and have things that are interested in events expose an interface of their own09:53
Jc2kso signal Announce from org,frestuff,EventListener at /org/freestuff/EventListener/<some_uid>09:54
Jc2kthat interface would allow events to block09:54
Jc2kbut though it works09:54
Jc2kits still messy09:54
Jc2khmm09:55
=== Jc2k abandons quest for free beer

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!