Browse Prior Art Database

An Efficient Listener Triggerring System

IP.com Disclosure Number: IPCOM000188594D
Original Publication Date: 2009-Oct-15
Included in the Prior Art Database: 2009-Oct-15
Document File: 3 page(s) / 31K

Publishing Venue

IBM

Abstract

This invention solves the performance issue of managing multiple Listeners while a large number of them are in the stall state. The key to accelerate the performance of handling stall Listeners is to use a combination of "short circuit" jumping sub-routine with a machenism of maintaining the jump table. When a Listener enters the "stall mode", it sets its event handling function into a jumping-routine to short circuit the regular processing of the event. A jumping-routine is a special piece of program code that performs only a "jump" instruction to another location which has another event handling function. The target function of the jump instruction is maitained based on the information of the stalled event handlers, it tries to jump as far as possible to jump over all the continious stalled Listeners. The target of the jumping-routine is calculated and maintained by both the Listeners and the Event Container.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 3

An Efficient Listener Triggerring System

Listener is a software mechanism used to implement the event driven programs. The Listener is the event receiving component. Listeners are always used

with Event Container. Many listeners are inserted into the Event Container to observe for the events. W

trigger the Listeners that are registered to be willing to accept the event.

Listeners are not always willing or ready to receive all the events. Some time during the execution, some listeners may stop listening for some specific kind of event or all events. Listener in the state of beingnot listening is called "Stall". When a listener is stalled, there are usually two ways of telling the Event Container that it is not handling some event:

a. The Listener's event handling routine just return a error flag indicating it is in stall state, and the event is not accepted by this Listener

b. The Listener un-register from the Event Container to avoid receiving further events
Either these two kinds of solution involves performance issue. When there are tens of thousands of Listener registered in the Event Container, and many of the Listeners are in stall stage, the (a) solution all implies the full scan of the Listener list and travers every Listener to find out who is stall andinvoke the needed Listeners, the (b) solution requires frequent adding and removing of Listeners from the list.

The performance issue in managing the Listeners needs to be solved with better approaches,

with the fact that many Listeners are stall for most of the time,

which does not require query and the overhead of maintaining the Listener list with frequent adding and removing of Listeners.

A Listner...