diff options
Diffstat (limited to 'src/charon/credentials/credential_set.h')
-rw-r--r-- | src/charon/credentials/credential_set.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/charon/credentials/credential_set.h b/src/charon/credentials/credential_set.h index b5f3b95cd..4166d05a3 100644 --- a/src/charon/credentials/credential_set.h +++ b/src/charon/credentials/credential_set.h @@ -12,7 +12,7 @@ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * - * $Id: credential_set.h 3820 2008-04-17 11:22:37Z martin $ + * $Id: credential_set.h 4229 2008-07-30 11:38:44Z martin $ */ /** @@ -36,6 +36,13 @@ typedef struct credential_set_t credential_set_t; * Enumerators are used because queries might return multiple matches. * Filter parameters restrict enumeration over specific items only. * See credential_manager_t for an overview of the credential framework. + * + * A credential set enumerator may not block the credential set, i.e. multiple + * threads must be able to hold multiple enumerators, as the credential manager + * is higly parallelized. The best way to achieve this is by using shared + * read locks for the enumerators only. Otherwiese deadlocks will occur. + * The writing cache_cert() routine is called by the manager only if no + * enumerator is alive, so it is save to use a write lock there. */ struct credential_set_t { |