]> rtime.felk.cvut.cz Git - frescor/fna.git/commitdiff
add a lock for the queue structures when dequeued, for th moment is hardwired to...
authorsangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Tue, 15 Apr 2008 11:42:59 +0000 (11:42 +0000)
committersangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Tue, 15 Apr 2008 11:42:59 +0000 (11:42 +0000)
git-svn-id: http://www.frescor.org/private/svn/frescor/fna/trunk@1114 35b4ef3e-fd22-0410-ab77-dab3279adceb

src_frescan/frescan_queues.c

index 5abe9f1ace8bd43cc7e8a585a832790e101bb386..6d1d1501430c93ffd0a2c74950f6a6567f7b4ff8 100644 (file)
@@ -203,6 +203,9 @@ int frescan_pqueue_dequeue(frescan_prio_queue_t *pqueue,
         DEBUG(FRESCAN_QUEUES_ENABLE_DEBUG,
               "check priority fifo queues (max_prio=%u)\n", pqueue->max_prio);
 
+        // TODO: the lock is currently hardwired to network 0!!!
+        FRESCAN_ACQUIRE_LOCK(&the_networks[0].lock);
+
         for(prio=pqueue->max_prio-1; prio >= 0; prio--) {
                 if (!list_empty(&pqueue->fifo_queues[prio].fifo_list)) {
                         list_for_each(pos,
@@ -217,6 +220,8 @@ int frescan_pqueue_dequeue(frescan_prio_queue_t *pqueue,
                 }
         }
 
+        FRESCAN_RELEASE_LOCK(&the_networks[0].lock);
+
         DEBUG(FRESCAN_QUEUES_ENABLE_DEBUG, "dequeued prio %u\n", prio);
         *packet_prio = prio;