anchor.diff:           active/1, notify/1, enqueue/2]).
   -export([init/1,
            active/2, passive/2, notify/2,
  +         active/3, passive/3, notify/3,
            handle_event/3, handle_sync_event/4, handle_info/3,
            terminate/3, code_change/4]).
   
  
positive.code:     %% unexpected
      {next_state, passive, S}.
  
  %% @private
  notify(active, S = #state{size=0}) ->
      {next_state, active, S};
  
negative.code: %% @doc Enqueues a message.
  -spec enqueue(pid(), term()) -> ok.
  enqueue(Queue, Msg) ->
      case catch gen_fsm:sync_send_event(Queue, {enqueue, Msg}, infinity) of
          ok -> ok;
          {'EXIT', _Reason} ->
              % we are not allowed to crash, this would
              % teardown 'decoupled' publisher process
              ok
      end.
  
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%% gen_fsm Function Definitions %%%
  