From 402d165477db37234520818a37077c53de6627f4 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Fri, 7 Mar 2014 04:20:00 +0100 Subject: add unordered join MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/test.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/test.py b/src/test.py index 3bb7da6..f568614 100755 --- a/src/test.py +++ b/src/test.py @@ -19,6 +19,8 @@ along with this program. If not, see . ''' import time + +import random import threading @@ -91,7 +93,12 @@ def ordered_join(*f_groups): def unordered_join(*f_groups): - pass + ready = [i for i, fs in enumerate(f_groups) if all([len(f.queue) for f in fs])] + if len(ready): + i = ready[random.randrange(len(ready))] + return (i, join(*(f_groups[i])) + else: + return ordered_join(*f_groups) # extra, not a part of join-calculus -- cgit v1.2.3-70-g09d2