anchor.diff:  
               return! jobs |> Seq.map stalledJobsHandler |> Async.Parallel |> Async.Ignore
           }
  +
  +    let awaitJobAgent (inbox: MailboxProcessor<EventAwaiterMessage<'a>>) = 
  +        /// zoek in den lijst of er een job is die overeenkomt met dee job id als we een 
  +        /// reply channel en een jobid hebben en return een bool
  +        let tryFindJob channel jobs = 
  +            match channel with 
  +            | None -> None
  +            | Some (predicate, _) -> jobs |> List.tryFind(predicate)
  +
  +        /// recursive functie die returnt wanneer den job gevonden is
  +        let rec mainloop list (channel: ((Job<'a> -> bool) * AsyncReplyChannel<Job<'a>>) option) = 
  +            async {
  +                let! message = inbox.Receive()
  +
  +                match message with
  +                | Event completed -> 
  +                    let newList = completed.job::list
  +                    match tryFindJob channel newList with
  +                    | None -> return! mainloop newList channel
  +                    | Some job -> 
  +                        let _, reply = channel.Value
  +                        reply.Reply job
  +
  +                | WaitFor (jobId, channel) ->
  +                    let channelOption = Some (jobId, channel)
  +                    match tryFindJob channelOption list with
  +                    | None -> return! mainloop list channelOption
  +                    | Some job -> channel.Reply job
  +            }
  +                    
  +        mainloop [] None
  +     
   
       interface IOxenQueue<'a> with
           member this.Add (data) =
  
positive.code:                     } |> Async.RunSynchronously))
  
      do sub.Subscribe(_toKey("paused") |> keyToChannel,
          (fun c v ->
              do
                  match v |> string with
                  | "paused" -> this.emitQueueEvent(Paused) |> Async.RunSynchronously
  
negative.code:     Empty: IEvent<OxenQueueEventDelegate<'a>, OxenQueueEvent<'a>>
      NewJob: IEvent<OxenNewJobEventDelegate, OxenNewJobEvent>
  }
  and EventAwaiterMessage<'a> =
      | Event of OxenJobEvent<'a>
      | WaitFor of (Job<'a> -> bool) * AsyncReplyChannel<Job<'a>>
  
  /// [omit]
  and LockRenewer<'a> (job:Job<'a>, token:Guid) =
      static let logger = LogManager.getLogger()
  