This directory contains expermential pthread workqueue patches for
FreeBSD-current.

kern_thrworkq_YYYY_MM_DD.diff is a patch for the FreeBSD kernel that adds the 
thr_workq(int cmd, struct twq_param *twqp) system call.  To compile the kernel
code "options THRWORKQ" needs to be added to the kernel config file.

pthread_workqueue_YYYY_MM_DD.diff is a patch for libthr and pthread_np.h that 
adds the following:

int pthread_workqueue_init_np(void);
int pthread_workqueue_create_np(pthread_workqueue_t * workqp,
            const pthread_workqueue_attr_t * attr);
int pthread_workqueue_additem_np(pthread_workqueue_t workq,
            void *( *workitem_func)(void *), void * workitem_arg,
            pthread_workitem_handle_t * itemhandlep, unsigned int *gencountp);
int pthread_workqueue_attr_init_np(pthread_workqueue_attr_t * attrp);
int pthread_workqueue_attr_destroy_np(pthread_workqueue_attr_t * attr);
int pthread_workqueue_attr_setqueuepriority_np(pthread_workqueue_attr_t * attr,
            int qprio);
int pthread_workqueue_attr_getovercommit_np(
            const pthread_workqueue_attr_t * attr, int * ocommp);
int pthread_workqueue_attr_setovercommit_np(pthread_workqueue_attr_t * attr,
            int ocomm);
int pthread_workqueue_requestconcurrency_np(pthread_workqueue_t workq,
            int queue, int request_concurrency);
int pthread_workqueue_getovercommit_np(pthread_workqueue_t workq,
            unsigned int *ocommp);

See pthread_workqueue.3.txt for man page. 

Also, see TODO for information about missing bits and bugs.
