]> mj.ucw.cz Git - libucw.git/blobdiff - lib/workqueue.h
Use Threads.DefaultStackSize instead of various local stack sizes.
[libucw.git] / lib / workqueue.h
index 32ea19fc5133c9436d073d27ef2b3e84b1bce0a6..c16904abc2c694b0d53cb56c408363befc5bbd23 100644 (file)
@@ -47,7 +47,7 @@ struct raw_queue {                            // Generic queue with locking
 struct worker_pool {
   struct raw_queue requests;
   uns num_threads;
-  uns stack_size;
+  uns stack_size;                              // 0 for default
   struct worker_thread *(*new_thread)(void);   // default: xmalloc the struct
   void (*free_thread)(struct worker_thread *t);        // default: xfree
   void (*init_thread)(struct worker_thread *t);        // default: empty
@@ -76,10 +76,12 @@ void raw_queue_init(struct raw_queue *q);
 void raw_queue_cleanup(struct raw_queue *q);
 void raw_queue_put(struct raw_queue *q, struct work *w);
 struct work *raw_queue_get(struct raw_queue *q);
+struct work *raw_queue_try_get(struct raw_queue *q);
 
 void work_queue_init(struct worker_pool *p, struct work_queue *q);
 void work_queue_cleanup(struct work_queue *q);
 void work_submit(struct work_queue *q, struct work *w);
 struct work *work_wait(struct work_queue *q);
+struct work *work_try_wait(struct work_queue *q);
 
 #endif /* !_UCW_WORKQUEUE_H */