]> mj.ucw.cz Git - libucw.git/blobdiff - ucw/workqueue.c
Merge branch 'master' into dev-sizet
[libucw.git] / ucw / workqueue.c
index 2dd58c9ecfeb0b1fafd877b1202fbce8d7f93c72..b01f258c1caf1948b1b2ca6adf5e59ddf79adeae 100644 (file)
@@ -7,10 +7,10 @@
  *     of the GNU Lesser General Public License.
  */
 
  *     of the GNU Lesser General Public License.
  */
 
-#include "ucw/lib.h"
-#include "ucw/threads.h"
-#include "ucw/workqueue.h"
-#include "ucw/heap.h"
+#include <ucw/lib.h>
+#include <ucw/threads.h>
+#include <ucw/workqueue.h>
+#include <ucw/heap.h>
 
 static void *
 worker_thread_init(void *arg)
 
 static void *
 worker_thread_init(void *arg)
@@ -53,7 +53,7 @@ worker_pool_init(struct worker_pool *p)
       pthread_attr_setstacksize(&attr, p->stack_size ? : ucwlib_thread_stack_size) < 0)
     ASSERT(0);
 
       pthread_attr_setstacksize(&attr, p->stack_size ? : ucwlib_thread_stack_size) < 0)
     ASSERT(0);
 
-  for (uns i=0; i < p->num_threads; i++)
+  for (uint i=0; i < p->num_threads; i++)
     {
       struct worker_thread *t = (p->new_thread ? p->new_thread() : xmalloc(sizeof(*t)));
       t->pool = p;
     {
       struct worker_thread *t = (p->new_thread ? p->new_thread() : xmalloc(sizeof(*t)));
       t->pool = p;
@@ -71,7 +71,7 @@ worker_pool_init(struct worker_pool *p)
 void
 worker_pool_cleanup(struct worker_pool *p)
 {
 void
 worker_pool_cleanup(struct worker_pool *p)
 {
-  for (uns i=0; i < p->num_threads; i++)
+  for (uint i=0; i < p->num_threads; i++)
     {
       struct work w = {
        .go = worker_thread_signal_finish
     {
       struct work w = {
        .go = worker_thread_signal_finish
@@ -131,8 +131,7 @@ raw_queue_put(struct raw_queue *q, struct work *w)
          q->pri_heap = xrealloc(old_heap, (q->heap_max + 1) * sizeof(struct work *));
        }
       struct work **heap = q->pri_heap;
          q->pri_heap = xrealloc(old_heap, (q->heap_max + 1) * sizeof(struct work *));
        }
       struct work **heap = q->pri_heap;
-      heap[++q->heap_cnt] = w;
-      HEAP_INSERT(struct work *, heap, q->heap_cnt, PRI_LESS, HEAP_SWAP);
+      HEAP_INSERT(struct work *, heap, q->heap_cnt, PRI_LESS, HEAP_SWAP, w);
     }
   pthread_mutex_unlock(&q->queue_mutex);
   sem_post(q->queue_sem);
     }
   pthread_mutex_unlock(&q->queue_mutex);
   sem_post(q->queue_sem);
@@ -153,7 +152,7 @@ raw_queue_do_get(struct raw_queue *q)
     {
       struct work **heap = q->pri_heap;
       w = heap[1];
     {
       struct work **heap = q->pri_heap;
       w = heap[1];
-      HEAP_DELMIN(struct work *, heap, q->heap_cnt, PRI_LESS, HEAP_SWAP);
+      HEAP_DELETE_MIN(struct work *, heap, q->heap_cnt, PRI_LESS, HEAP_SWAP);
     }
   pthread_mutex_unlock(&q->queue_mutex);
   return w;
     }
   pthread_mutex_unlock(&q->queue_mutex);
   return w;
@@ -239,7 +238,7 @@ static void wt_cleanup(struct worker_thread *t)
 
 struct w {
   struct work w;
 
 struct w {
   struct work w;
-  uns id;
+  uint id;
 };
 
 static void go(struct worker_thread *t, struct work *w)
 };
 
 static void go(struct worker_thread *t, struct work *w)
@@ -260,7 +259,7 @@ int main(void)
 
   struct work_queue q;
   work_queue_init(&pool, &q);
 
   struct work_queue q;
   work_queue_init(&pool, &q);
-  for (uns i=0; i<500; i++)
+  for (uint i=0; i<500; i++)
     {
       struct w *w = xmalloc_zero(sizeof(*w));
       w->w.go = go;
     {
       struct w *w = xmalloc_zero(sizeof(*w));
       w->w.go = go;