X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fovs-thread.h;h=f0318948b9e99db34fd513f51e8ab4217cf16de0;hb=9a1a10918615d2138d93a315a6af83253e9d88dd;hp=8cf2ecca3f217fd391ab77c03fdc68e54af14d5b;hpb=7e6410d2bf5d70f10a4db0c4008a6fa4bab704ca;p=sliver-openvswitch.git diff --git a/lib/ovs-thread.h b/lib/ovs-thread.h index 8cf2ecca3..f0318948b 100644 --- a/lib/ovs-thread.h +++ b/lib/ovs-thread.h @@ -444,9 +444,15 @@ void xpthread_join(pthread_t, void **); * (by recompiling). Thus, one may more freely use this form of * thread-specific data. * - * Compared to pthread_key_t, ovsthread_key_t has the follow limitations: + * ovsthread_key_t also differs from pthread_key_t in the following ways: * * - Destructors must not access thread-specific data (via ovsthread_key). + * + * - The pthread_key_t API allows concurrently exiting threads to start + * executing the destructor after pthread_key_delete() returns. The + * ovsthread_key_t API guarantees that, when ovsthread_key_delete() + * returns, all destructors have returned and no new ones will start + * execution. */ typedef struct ovsthread_key *ovsthread_key_t;