summaryrefslogtreecommitdiffstats
path: root/share/sendmail
diff options
context:
space:
mode:
authorwill <will@FreeBSD.org>2013-03-23 15:11:53 +0000
committerwill <will@FreeBSD.org>2013-03-23 15:11:53 +0000
commit5d3a27c7434a37ae901743cd13abde0f4c0adbb1 (patch)
tree3516b04234c4782387f7269ca92ee0f247a47c15 /share/sendmail
parenta4c39d4efd7c5dc2ef3bbb4e70449a7d6b673edc (diff)
downloadFreeBSD-src-5d3a27c7434a37ae901743cd13abde0f4c0adbb1.zip
FreeBSD-src-5d3a27c7434a37ae901743cd13abde0f4c0adbb1.tar.gz
Extend taskqueue(9) to enable per-taskqueue callbacks.
The scope of these callbacks is primarily to support actions that affect the taskqueue's thread environments. They are entirely optional, and consequently are introduced as a new API: taskqueue_set_callback(). This interface allows the caller to specify that a taskqueue requires a callback and optional context pointer for a given callback type. The callback types included in this commit can be used to register a constructor and destructor for thread-local storage using osd(9). This allows a particular taskqueue to define that its threads require a specific type of TLS, without the need for a specially-orchestrated task-based mechanism for startup and shutdown in order to accomplish it. Two callback types are supported at this point: - TASKQUEUE_CALLBACK_TYPE_INIT, called by every thread when it starts, prior to processing any tasks. - TASKQUEUE_CALLBACK_TYPE_SHUTDOWN, called by every thread when it exits, after it has processed its last task but before the taskqueue is reclaimed. While I'm here: - Add two new macros, TQ_ASSERT_LOCKED and TQ_ASSERT_UNLOCKED, and use them in appropriate locations. - Fix taskqueue.9 to mention taskqueue_start_threads(), which is a required interface for all consumers of taskqueue(9). Reviewed by: kib (all), eadler (taskqueue.9), brd (taskqueue.9) Approved by: ken (mentor) Sponsored by: Spectra Logic MFC after: 1 month
Diffstat (limited to 'share/sendmail')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud