There is an unlock where there should be a lock. (Even the comment tells so.) Thread libraries which do strict checks complain about a double unlock because of this.
Thanks for finding this. I've pushed out a fix now into 1.4.1: http://gitweb.freedesktop.org/?p=cairo;a=commitdiff;h=ef284a2d6bbeae8711226f1f1f2cf4936f6937eb; -Carl
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.