anchor.diff:  
   -spec broadcast_job_cancellation(pool(), id()) -> ok.
   broadcast_job_cancellation(PoolName, TaskId) ->
  -    worker_pool:broadcast(?MASTER_POOL_NAME(PoolName), {?MODULE, is_job_cancelled, [TaskId]}),
  -    worker_pool:broadcast(?SLAVE_POOL_NAME(PoolName), {?MODULE, is_job_cancelled, [TaskId]}),
  +    worker_pool:broadcast(?MASTER_POOL_NAME(PoolName), ?CANCELLATION_MESSAGE(TaskId)),
  +    worker_pool:broadcast(?SLAVE_POOL_NAME(PoolName), ?CANCELLATION_MESSAGE(TaskId)),
       ok.
  
positive.code: execute_slave_job(PoolName, CallbackModule, ExtendedCtx, TaskId, Job) ->
      try
          case traverse_task:is_cancelled(PoolName, TaskId) of
              true -> 
                  ok;
              false ->
                  case CallbackModule:do_slave_job(Job, TaskId) of
                      ok ->
                          ok;
  
negative.code:     log_error_with_stacktrace(Stacktrace, Format, Args)
  ).
  
  
  %% Message broadcasted to all workers on pool (see broadcast_job_cancellation/2). 
  %% Its existence in message queue determines whether given task was cancelled.
  %% As this message is a worker_pool cast message `is_job_cancelled` function will be executed 
  %% after job execution is finished, which will result in removal of this message from process message queue.
  -define(CANCELLATION_MESSAGE(TaskId), {?MODULE, is_job_cancelled, [TaskId]}).
  -define(CANCELLATION_MESSAGE_MATCHER(TaskId), {'$gen_cast', {cast, ?CANCELLATION_MESSAGE(TaskId)}}).
  
  %%%===================================================================
  %%% API
  %%%===================================================================
  