!([]((waitingthread && threadrun) -> blockedthread))