libbluray | branch: master | npzacs <[email protected]> | Sun Dec  1 19:00:11 
2013 +0200| [0c83ca66225b3be41a888bfe05624eba39610090] | committer: npzacs

bd_reg_write(): no need to lock bd state when BD-J is communicating with 
libbdplus

> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=0c83ca66225b3be41a888bfe05624eba39610090
---

 src/libbluray/bluray.c |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c
index f5580fb..0055ecd 100644
--- a/src/libbluray/bluray.c
+++ b/src/libbluray/bluray.c
@@ -986,9 +986,14 @@ uint32_t bd_reg_read(BLURAY *bd, int psr, int reg)
 int bd_reg_write(BLURAY *bd, int psr, int reg, uint32_t value)
 {
     if (psr) {
-        bd_mutex_lock(&bd->mutex); /* avoid deadlocks (psr_write triggers 
callbacks that may lock this mutex) */
+        if (psr < 102) {
+            /* avoid deadlocks (psr_write triggers callbacks that may lock 
this mutex) */
+            bd_mutex_lock(&bd->mutex);
+        }
         int res = bd_psr_write(bd->regs, reg, value);
-        bd_mutex_unlock(&bd->mutex);
+        if (psr < 102) {
+            bd_mutex_unlock(&bd->mutex);
+        }
         return res;
     } else {
         return bd_gpr_write(bd->regs, reg, value);

_______________________________________________
libbluray-devel mailing list
[email protected]
https://mailman.videolan.org/listinfo/libbluray-devel

Reply via email to