Next: Byte-codes Up: Implementation Previous: Synchan event handling Contents

## New Incoming Events

When new events arrive on a synaptic channel that has been taken over by `hsolve`, there is a possibility that the event must be scheduled before any other pending event i.e. the new event is the first one in the sorted list of events. As a consequence the internal counter that tracks the occurrence of the next synaptic event for that channel must be updated. A synaptic channel receiving a new first event, notifies `hsolve` of this situation by calling the `hsolve` element with an `HSEVENT` action. The arguments to this action describe the synaptic channel at which the event arrives with a unique identifier and the time when the event will be scheduled. `Hsolve` uses this information to update the internal counter for the synaptic channel. The unique identifier is determined by `hsolve` during `SETUP` time and can be found in the `solve_index` field of the synaptic channel. The `hsolve` element that has taken over the synaptic channel is found in the `hsolve` field of the channel.

NOTE: For the outgoing spike events `hsolve` uses a message loop on the messages of the `spikegen` element that produces the spikes. There is nothing really fancy about this except for the fact that `hsolve` uses memory that is supposed to be private to the `spikegen` element. This way the events arrive automatically at the wright `synchan` element, and that element will in turn notify an `hsolve` element if needed by means of an `HSEVENT` action. This also guarantees that there is no interference with `pgenesis`.

Next: Byte-codes Up: Implementation Previous: Synchan event handling Contents