From 8e40e83ff34ee1fa8434f274b9159f43dbdafef8 Mon Sep 17 00:00:00 2001 From: Per Hedbor <ph@opera.com> Date: Mon, 1 Sep 1997 16:13:50 +0200 Subject: [PATCH] Fixed the unlocking/locking order. Sometimes a deadlock occured. Rev: lib/modules/Thread.pmod:1.8 --- lib/modules/Thread.pmod | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/modules/Thread.pmod b/lib/modules/Thread.pmod index 0bdd21a9a2..a337ad18ce 100644 --- a/lib/modules/Thread.pmod +++ b/lib/modules/Thread.pmod @@ -52,6 +52,7 @@ class Queue { object key=lock::lock(); while(!size()) r_cond::wait(key); tmp=buffer[r_ptr++]; + key=0; return tmp; } @@ -67,6 +68,7 @@ class Queue { } buffer[w_ptr]=v; w_ptr++; + key=0; // Must free this one _before_ the signal... r_cond::signal(); } }; -- GitLab