anchor.diff:              {ok, {JobSchedPid, {Node, Task}}} ->
                   M = gb_trees:get(Node, Nodes),
                   WorkerPid = start_worker(Node, M#dnode.node_mon, Task),
  -                UWorkers = gb_trees:insert(
  -                    WorkerPid, {Node, Task}, Workers),
  -                gen_server:cast(JobSchedPid,
  -                    {task_started, Node, WorkerPid}),
  -
  -                UNodes = gb_trees:update(Node,
  -                    M#dnode{num_running =
  -                        M#dnode.num_running + 1},
  -                             Nodes),
  -                handle_cast(schedule_next,
  -                    S#state{nodes = UNodes,
  -                        workers = UWorkers});
  +                UWorkers = gb_trees:insert(WorkerPid, {Node, Task}, Workers),
  +                gen_server:cast(JobSchedPid, {task_started, Node, WorkerPid}),
  +
  +                M1 = M#dnode{num_running = M#dnode.num_running + 1},
  +                UNodes = gb_trees:update(Node, M1, Nodes),
  +                S1 = S#state{nodes = UNodes, workers = UWorkers},
  +                handle_cast(schedule_next, S1);
               nojobs ->
                   {noreply, S}
           end;
  
positive.code: 
  -export([start_link/0, stop/0]).
  -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
      terminate/2, code_change/3]).
  
  -include("disco.hrl").
  
  
negative.code:     end.
  
  stop() ->
      gen_server:call(?MODULE, stop).
  
  %% ===================================================================
  %% gen_server callbacks
  
  init(_Args) ->
      process_flag(trap_exit, true),
  