X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fasio.c;h=f8249515eb82c9f4cdc616396762eaeb83b4fffd;hb=5ff0a5b047624c8f215da9cd6c7182d609fcbd01;hp=228d10bf9f8fccab817c4e4468711f236657b801;hpb=348ef39c1cf89a38a24ebbd221a9b0a3078cfc1c;p=libucw.git diff --git a/lib/asio.c b/lib/asio.c index 228d10bf..f8249515 100644 --- a/lib/asio.c +++ b/lib/asio.c @@ -11,6 +11,7 @@ #include "lib/lib.h" #include "lib/asio.h" +#include "lib/threads.h" #include #include @@ -18,13 +19,6 @@ static uns asio_num_users; static struct worker_pool asio_wpool; -static pthread_mutex_t asio_init_lock; - -static void CONSTRUCTOR -asio_global_init(void) -{ - pthread_mutex_init(&asio_init_lock, NULL); -} static void asio_init_unlocked(void) @@ -34,7 +28,6 @@ asio_init_unlocked(void) DBG("ASIO: INIT"); asio_wpool.num_threads = 1; - asio_wpool.stack_size = 65536; worker_pool_init(&asio_wpool); } @@ -51,9 +44,9 @@ asio_cleanup_unlocked(void) void asio_init_queue(struct asio_queue *q) { - pthread_mutex_lock(&asio_init_lock); + ucwlib_lock(); asio_init_unlocked(); - pthread_mutex_unlock(&asio_init_lock); + ucwlib_unlock(); DBG("ASIO: New queue %p", q); ASSERT(q->buffer_size); @@ -85,9 +78,9 @@ asio_cleanup_queue(struct asio_queue *q) work_queue_cleanup(&q->queue); - pthread_mutex_lock(&asio_init_lock); + ucwlib_lock(); asio_cleanup_unlocked(); - pthread_mutex_unlock(&asio_init_lock); + ucwlib_unlock(); } struct asio_request * @@ -183,7 +176,7 @@ asio_submit(struct asio_request *r) q->running_requests++; r->submitted = 1; r->work.go = asio_handler; - r->work.returned = NULL; + r->work.priority = 0; work_submit(&q->queue, &r->work); }