ProducerConsumer handle release processing

For an overview of the ProducerConsumer please see: ProducerConsumer: overview.


The function of the release handling in the ProducerConsumer is to receive a release message at a producer that was sent by a consumer and consists of the following operations:
  • Route the event to the correct ProducerConsumerElement
  • Update the state to register the release received on the appropriate link within that element
  • Trigger an event to notify the state has changed
  • Send a released notification to the consumer if requested

Processing sequence

The processing of a release received by the ProducerConsumer task is depicted in the following sequence diagram:


The event processing consists of the following steps:
  • Conversion of the incoming link number from relative to absolute
  • Call ProducerConsumerElement.PreReleaseReceived() to update the state of the target element prior to specific processing
  • Get the consumer and producer slot IDs
  • The ReleaseReceived event for the ProducerConsumer is invoked
  • Call ProducerConsumerElement.PostReleaseReceived() to update the state of the target element post specific processing
  • Call SendReleased(), if required, to send a released notification to the event consumer

NOTE: The release processing requires pre and post processing within the ProducerConsumerElement because the link state has to be updated (in the pre-processing) prior to calling the ReleaseReceived event and the action of the post-processing is dependent on whether calling ReleaseReceived resulted in a deletion request, or not.

Last edited Sep 29, 2012 at 10:45 AM by jaorme, version 8


No comments yet.