anchor.diff:  -spec is_job_cancelled(id()) -> boolean().
   is_job_cancelled(TaskId) ->
       receive
  -        {'$gen_cast',{cast,{?MODULE, ?FUNCTION_NAME, [TaskId]}}} = Msg -> 
  -            self() ! Msg, % resend message so next calls to this function return correct result
  +        ?CANCELLATION_MESSAGE_MATCHER(TaskId) = Msg -> 
  +            % Resend message so next calls to this function from the same job return correct result. 
  +            % After job execution finishes this message will be handled by worker_pool resulting in 
  +            % its removal from message queue. It is enough as following jobs queued on worker pool 
  +            % check whether task is cancelled before execution.
  +            self() ! Msg, 
               true
       after 
           0 -> false
  
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: 
  -spec broadcast_job_cancellation(pool(), id()) -> ok.
  broadcast_job_cancellation(PoolName, TaskId) ->
      worker_pool:broadcast(?MASTER_POOL_NAME(PoolName), ?CANCELLATION_MESSAGE(TaskId)),
      worker_pool:broadcast(?SLAVE_POOL_NAME(PoolName), ?CANCELLATION_MESSAGE(TaskId)),
      ok.
  