pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/graphics/xine-lib Adjust the CRITICAL_SECTION locking ...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/dff30011f46f
branches:  trunk
changeset: 462476:dff30011f46f
user:      mycroft <mycroft%pkgsrc.org@localhost>
date:      Fri Oct 03 17:49:27 2003 +0000

description:
Adjust the CRITICAL_SECTION locking protocol slightly -- only increase
cs->locked *after* acquiring the lock, so that we can count recursive locks
and unlock at the right time.  Doesn't seem to affect any codecs I've tested,
but you never know...

diffstat:

 graphics/xine-lib/distinfo         |   4 ++--
 graphics/xine-lib/patches/patch-al |  18 ++++++++++--------
 2 files changed, 12 insertions(+), 10 deletions(-)

diffs (61 lines):

diff -r d02147222f44 -r dff30011f46f graphics/xine-lib/distinfo
--- a/graphics/xine-lib/distinfo        Fri Oct 03 16:38:22 2003 +0000
+++ b/graphics/xine-lib/distinfo        Fri Oct 03 17:49:27 2003 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.9 2003/10/02 14:20:35 mycroft Exp $
+$NetBSD: distinfo,v 1.10 2003/10/03 17:49:27 mycroft Exp $
 
 SHA1 (xine-lib-1-rc0a.tar.gz) = ee41ba602179a9f02208a15e3dff36a1dfa00fac
 Size (xine-lib-1-rc0a.tar.gz) = 4211552 bytes
@@ -12,7 +12,7 @@
 SHA1 (patch-ai) = f71e3cb57bf30cbf9653a469c040b6e3f717ba97
 SHA1 (patch-aj) = 54cf69b028d46327d46b5cc2a0ec457bd4a59b67
 SHA1 (patch-ak) = 5e791e17755e0b7515d81f80790d529992e827d6
-SHA1 (patch-al) = 4e995a84efcb8ae17a803f8f1cc6118506be09b0
+SHA1 (patch-al) = af557ce4fd64e11f84947e067f445e59628c6f99
 SHA1 (patch-am) = 0441dcd9faf0c0e7f07c8d0fc7a61fcce435af76
 SHA1 (patch-an) = 4877ff4f905c2b62c37c0d4bbb51510d8a043344
 SHA1 (patch-ao) = 53de6febfed214e9e43d53e3e5b83af1fcb19b20
diff -r d02147222f44 -r dff30011f46f graphics/xine-lib/patches/patch-al
--- a/graphics/xine-lib/patches/patch-al        Fri Oct 03 16:38:22 2003 +0000
+++ b/graphics/xine-lib/patches/patch-al        Fri Oct 03 17:49:27 2003 +0000
@@ -1,8 +1,8 @@
-$NetBSD: patch-al,v 1.1 2003/10/02 12:31:30 mycroft Exp $
+$NetBSD: patch-al,v 1.2 2003/10/03 17:49:27 mycroft Exp $
 
 --- src/libw32dll/wine/win32.c.orig    2003-10-02 12:25:52.000000000 +0000
 +++ src/libw32dll/wine/win32.c 2003-10-02 12:21:50.000000000 +0000
-@@ -440,9 +442,8 @@
+@@ -440,9 +440,8 @@
  
      alccnt--;
  
@@ -14,20 +14,22 @@
        pthread_mutex_destroy(&memmut);
  
      //if (alccnt < 40000) printf("MY_RELEASE: %p\t%ld    (%d)\n", header, header->size, alccnt);
-@@ -1349,11 +1350,10 @@
- #endif
+@@ -1350,10 +1349,12 @@
        printf("wine/win32: Win32 Warning: Accessed uninitialized Critical Section (%p)!\n", c);
      }
--    if(cs->locked)
-+    if(cs->locked++)
-       if(cs->id==pthread_self())
+     if(cs->locked)
+-      if(cs->id==pthread_self())
++      if(cs->id==pthread_self()) {
++          cs->locked++;
            return;
++      }
      pthread_mutex_lock(&(cs->mutex));
 -    cs->locked=1;
++    cs->locked++;     /* should always be 1 */
      cs->id=pthread_self();
      return;
  }
-@@ -1371,8 +1371,8 @@
+@@ -1371,8 +1372,8 @@
        printf("Win32 Warning: Leaving uninitialized Critical Section %p!!\n", c);
        return;
      }



Home | Main Index | Thread Index | Old Index