On 04/20/2011 02:46 PM, Eric Blake wrote: > On 04/20/2011 03:14 AM, Hu Tao wrote: >> This prepares for the next patch. >> >> The bad is we have no way to check the return value for >> CreateMutex when it is used as a static initializer. >> --- >> src/util/threads-pthread.h | 5 +++++ >> src/util/threads-win32.h | 5 +++++ >> 2 files changed, 10 insertions(+), 0 deletions(-) > > Then again, the next patch doesn't use VIR_MUTEX_INITIALIZER under WIN32 > (it is only used in the fallback after gcc builtins and WIN32 native > functions are bypassed). So, even simpler is just leaving it undefined > for that platform, and deferring the problem of a working solution until > the next time (if ever) we think we need the usage pattern of a > static-initialized mutex to begin with. In fact, I think that pthread_once/InitOnceExecuteOnce provides the perfect pthread vs. WIN32 approach to one-time initialization without relying on static initializers, and that it would be fairly easy to write virOnce as the wrapper function that covers the underlying functionality of both threading approaches. -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list