anchor.diff:          _ ->
               %% ignore unknown messages
               ?MODULE:worker_loop(Parent)
  +    after 1000 ->
  +            ?MODULE:worker_loop(Parent)
       end.
   
  
positive.code: %% ====================================================================
  
  worker_loop(Parent) ->
      Parent ! worker_ready,
      receive
          {compaction, Pid} ->
              Start = now(),
  
negative.code:         true ->
              {reply, already_queued, State};
          false ->
              NewState = State#state { queue = queue:in(Pid, Q) },
              {reply, ok, NewState}
      end;
  
  handle_call(Event, _From, State) ->
      ?PRINT({unhandled_call, Event}),
      {reply, ok, State}.
  
  handle_cast(Msg, State) ->
      ?PRINT({unhandled_cast, Msg}),
      {noreply, State}.
  
  handle_info({worker_ready, WorkerPid}, #state { queue = Q } = State) ->
      case queue:out(Q) of
          {empty, Q} ->
              {noreply, State};
          {{value, Pid}, NewQ} ->
              WorkerPid ! {compaction, Pid},
              NewState = State#state { queue=NewQ },
              {noreply, NewState}
      end;
  handle_info({'EXIT', Pid, Reason}, #state { worker = WorkerPid } = State) ->
      error_logger:error_msg("Compaction worker PID exited: ~p\n", [Reason]),
      %% Start a new worker.
      Self=self(),
      NewWorkerPid = spawn_link(fun() -> worker_loop(Self) end),
      NewState = State#state { worker=NewWorkerPid },
      {noreply, NewState};
  
  handle_info(Info, State) ->
      ?PRINT({unhandled_info, Info}).
  
  terminate(_Reason, _State) ->
      ok.
  