deque: wrong bug fix before...now the correct one
authorBrian Demsky <bdemsky@uci.edu>
Thu, 7 Mar 2013 03:06:26 +0000 (19:06 -0800)
committerBrian Demsky <bdemsky@uci.edu>
Thu, 7 Mar 2013 03:06:26 +0000 (19:06 -0800)
chase-lev-deque/main.c

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