From: Alex Wang Date: Thu, 8 Aug 2013 22:14:21 +0000 (-0700) Subject: CodingStyle: Add guide about using thread safety types and annotations. X-Git-Tag: sliver-openvswitch-2.0.90-1~32^2~5 X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=bdd2719efb7483ea237698d8ca7c1459da01f368 CodingStyle: Add guide about using thread safety types and annotations. This commit adds guide about using thread safety types and annotations to CodingStyle file. Signed-off-by: Alex Wang [blp@nicira.com edited the advice slightly] Signed-off-by: Ben Pfaff --- diff --git a/CodingStyle b/CodingStyle index 55b37a1cb..2f24ee396 100644 --- a/CodingStyle +++ b/CodingStyle @@ -298,6 +298,21 @@ the name of each enum. For example: }; +THREAD SAFETY ANNOTATIONS + + Use the macros in lib/compiler.h to annotate locking requirements. +For example: + + static struct ovs_mutex mutex = OVS_MUTEX_INITIALIZER; + static struct ovs_rwlock rwlock = OVS_RWLOCK_INITIALIZER; + + void function_require_plain_mutex(void) OVS_REQUIRES(mutex); + void function_require_rwlock(void) OVS_REQ_RDLOCK(rwlock); + + Pass lock objects, not their addresses, to the annotation macros. +(Thus we have OVS_REQUIRES(mutex) above, not OVS_REQUIRES(&mutex).) + + SOURCE FILES Each source file should state its license in a comment at the very