in reply to Re^4: OT: Locking and syncing mechanisms available on *nix.
in thread OT: Locking and syncing mechanisms available on *nix.
I'm not trying to mutually exclude anything.You actually need to mutually exclude access to the condition variable. I don't use Perl threads much, but it looks like threads::shared has the necessary ingredients, and you can do something like this:
my $cond : shared; $thread1 = async { { lock($cond); cond_wait($cond) until $cond } # do stuff. }; $thread2 = async { # do stuff. { lock($cond); $cond = "proceed"; cond_signal($cond) } };
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: OT: Locking and syncing mechanisms available on *nix.
by BrowserUk (Patriarch) on Mar 27, 2011 at 15:10 UTC | |
by educated_foo (Vicar) on Mar 27, 2011 at 15:25 UTC | |
by BrowserUk (Patriarch) on Mar 27, 2011 at 16:11 UTC | |
by educated_foo (Vicar) on Mar 27, 2011 at 16:30 UTC | |
by BrowserUk (Patriarch) on Mar 27, 2011 at 17:59 UTC | |
| |
by ikegami (Patriarch) on Mar 27, 2011 at 17:31 UTC | |
by BrowserUk (Patriarch) on Mar 27, 2011 at 17:38 UTC | |
by ikegami (Patriarch) on Mar 27, 2011 at 17:44 UTC |