deque: bug fix...method could return empty
authorBrian Demsky <bdemsky@uci.edu>
Thu, 7 Mar 2013 03:03:53 +0000 (19:03 -0800)
committerBrian Demsky <bdemsky@uci.edu>
Thu, 7 Mar 2013 03:03:53 +0000 (19:03 -0800)
chase-lev-deque/main.c

index 64d044450a93c5bccee63243ef5b279b6f622ea0..77ea5a850451d06c9e66eb627ade7ab4dd0e6946 100644 (file)
@@ -21,7 +21,9 @@ int user_main(int argc, char **argv)
        thrd_create(&t, task, 0);
        push(q, 1);
        push(q, 2);
        thrd_create(&t, task, 0);
        push(q, 1);
        push(q, 2);
-       b=take(q);
+       do {
+               b=take(q);
+       }       while(b==EMPTY);
        thrd_join(t);
        if (a+b!=3)
                printf("a=%d b=%d\n",a,b);
        thrd_join(t);
        if (a+b!=3)
                printf("a=%d b=%d\n",a,b);