Skip to content
  • Steve Nairn's avatar
    Fix the fix to Windows locking · 620a7061
    Steve Nairn authored and Daniel Veillard's avatar Daniel Veillard committed
    For https://bugzilla.gnome.org/show_bug.cgi?id=737851
    
    Unfortunately this change has introduced a problem which results in
    occasional hangs on Windows when running multi-threaded on a multi-core
    host.
    
    When locking the xmlRMutex the count field is increment inside the
    critical section but when unlocking the count field is decremented
    outside the critical section. The increment/decrement is not atomic so
    this can result in the count field being updated incorrectly.
    
    The solution is to change xmlRMutexUnlock to decrement the count field
    before leaving the critical section rather than after.
    620a7061