Patent ID: 8584143

Claim:
A system, comprising: a non-transitory computer readable medium that stores executable instructions that implement a listener manager that is configured to control, via at least a processor, a set of listener objects stored in a first data structure wherein a first pointer is assigned to point to the first data structure, where a listener object is programmed to initiate an action in response to an occurrence of an event; and wherein a first notify process, executable by the processor, is configured to use the first pointer to provide notice messages to one or more of the listener objects in the first data structure; wherein the listener manager is configured to modify the set of listener objects in response to a modify request that adds or removes a specified listener object from the set of listener objects by: generating a copy of the set of listener objects from the first data structure into a second data structure; assigning a second pointer that points to the second data structure; modifying the second data structure by adding or removing the specified listener object in the second data structure, wherein modifying the second data structure occurs in parallel with the first notice process providing the notice messages to the one or more listener objects in the first data structure; and providing the second pointer to a second notify process that initiates after completion of the modify request, wherein the second notify process provides notice messages to one or more of the listener objects in the second data structure based on at least the second pointer; wherein the listener manager is configured with an add listener logic that, in response to receiving the modify request that requests to add the specified listener object, is configured to: modify the second data structure by adding the specified listener object in the second data structure; and replace the first data structure with the second data structure after the modify request is completed by providing the second pointer to subsequent processes, wherein the add listener logic is configured to replace the first data structure with an atomic action performed by the processor that is not interruptible by a parallel running thread.