Untangling the intricacies of thread synchronization in the PREEMPT-RT linux kernel