From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes To: "Fans of the OS Plan 9 from Bell Labs" <9fans@9fans.net> References: Date: Wed, 2 May 2012 16:56:46 +0300 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: aram Message-ID: In-Reply-To: User-Agent: Opera Mail/11.62 (Linux) Subject: Re: [9fans] Question about o/mero -> o/live event notification mechanism Topicbox-Message-UUID: 8354804a-ead7-11e9-9d60-3106f5b1d025 On Tue, 01 May 2012 11:58:28 +0300, Nemo wrote: > > On Apr 30, 2012, at 11:54 PM, aram wrote: > >> Hi, >> >> i explore the UI of octopus and i try to understand how omero notifies >> the viewers for events. >> It is apparent from the documentation that the viewers "read" events >> from the ui/olive file. >> However, when i cat that file from the shell and "play" with a terminal >> a bit, i get no data. >> The terminals are updated correctly which indicates that the events are >> delivered. >> I checked the source of olive (port/live/live.b) and it simply reads >> (by calling updateproc(fd)) the file as expected. >> >> Obviously i am missing something important that the documentation does >> not cover. >> How can i read events posted by omero? >> >> Thanks > > There are two type of events. IIRC. > User events like open, exec, ... are posted via o/ports, and you can > read them from there. Yes, i receive successfully events targeted to applications (o/mero:.*). However ... > UI events are sent through a file with a protocol for o/live. > (Time ago they were sent also through ports, but I think I changed that). > The viewer reads a tree and then gets updates from that file. > That's internal and I don't think the man page describes that. ... i am interested for this ^^. In mero.b these events are described as # Events: # from o/mero to o/live (via merop): # "Tupdate file data" # "Ctl top" # "Ctl ins tag vers pos string" # "Ctl del tag vers pos string" I want to be able to listen precisely these events. I assume by "the viewer reads a tree and then gets updates from that file" you mean that the /mnt/ui/olive file is read? I checked the viewers code again, and it does not do anything strange or cryptic. The fact that bothers me is that by executing % cat olive I receive nothing, whereas by executing % touch /mnt/ports/listen_app_events % echo 'o/mero:.*' > listen_app_events % cat listen_app_events i receive application events (exec, close, ets) just fine. > I can take a look to the source so I remember if you don't have luck > with these hints. > > hth > > Thanks for your time. -- This => is my new email address.