anchor.diff:  
     TKMWorkerThread = class(TThread)
     private
  +    fThreadName: string;
       fWorkCompleted: Boolean;
       fTaskQueue: TQueue<TKMWorkerThreadTask>;
  +
  +    procedure NameThread;
     public
       //Special mode for exception handling. Runs work synchronously inside QueueWork
       fSynchronousExceptionMode: Boolean;
   
  -    constructor Create;
  +    constructor Create(const aThreadName: string = '');
       destructor Destroy; override;
       procedure Execute; override;
   
  
positive.code: 
  
  { TKMWorkerThread }
  constructor TKMWorkerThread.Create;
  begin
    //Thread isn't started until all constructors have run to completion
    //so Create(False) may be put in front as well
    inherited Create(False);
  
    fWorkCompleted := False;
    fSynchronousExceptionMode := False;
  
negative.code:       Job.Proc();
        FreeAndNil(Job);
      end;
  
      NameThread;
    end;
  end;
  
  