thread_pool_destroy 调用无法返回

在一个多线程的resmgr中,当使用如下代码创建thread pool时,调用thread_pool_destroy 销毁线程池时会阻塞住,thread_pool_destroy永不返回:

	thread_pool_attr_t pool_attr = {0};
	pool_attr.handle         = dispatch_handle;
	pool_attr.context_alloc= dispatch_context_alloc;
   pool_attr.block_func        = dispatch_block;
   pool_attr.handler_func     = dispatch_handler;
   pool_attr.context_free     = dispatch_context_free;
   pool_attr.lo_water           = 1;
   pool_attr.hi_water           = 4;
   pool_attr.increment         = 1;
   pool_attr.maximum         = 8;
	if ((thread_pool = thread_pool_create(&pool_attr, 0)) == NULL) {
		return errno;
	}

当把上面的那几函数替换为对应的resmgr_xxx后,调用thread_pool_destroy一切正常,不知道这里是否在使用上有什么限制?
说明:可以确保在呼叫thread_pool_destroy时,没有任何正在进行的IO,事实上测试时只运行了这个server,client的代码还没写哪。

期待达人解惑!

跟了下汇编码,最后是在pthread_cond_wait上给挂住了,但是奇怪的是,当使用resmgr_xxx的时候,又可以正常工作。 真是郁闷啊。

没有源码真是悲剧。

期待达人解。

纯属低级错误。
在修改代码的时候,把pool_attr.unblock_func = dispatch_unblock; 这句给误删了。加上就好了。