While many software projects requiring some form of parallelisation resort to standard synchronisation mechanisms offered by a programming language or a standard library of choice, other synchronisation techniques exist. This paper presents predicate-based synchronisation constructs and discusses the possibilities of their detection and static analysis.