/*
******************************************************************************
* *
-* Copyright (C) 2001-2011, International Business Machines *
+* Copyright (C) 2001-2012, International Business Machines *
* Corporation and others. All Rights Reserved. *
* *
******************************************************************************
#include "icuplugimp.h"
#include "ucln.h"
#include "ucnv_io.h"
-#include "umutex.h"
#include "utracimp.h"
-/*
- * ICU Initialization Function. Need not be called.
- */
-U_CAPI void U_EXPORT2
-u_init(UErrorCode *status) {
- UTRACE_ENTRY_OC(UTRACE_U_INIT);
- /* initialize plugins */
- uplug_init(status);
-
- umtx_lock(&gICUInitMutex);
- if (gICUInitialized || U_FAILURE(*status)) {
- umtx_unlock(&gICUInitMutex);
- UTRACE_EXIT_STATUS(*status);
- return;
- }
-
+static void U_CALLCONV
+initData(UErrorCode *status)
+{
/*
* 2005-may-02
*
#if !UCONFIG_NO_CONVERSION
ucnv_io_countKnownConverters(status);
#endif
+}
+
+/*
+ * ICU Initialization Function. Need not be called.
+ */
+U_CAPI void U_EXPORT2
+u_init(UErrorCode *status) {
+ UTRACE_ENTRY_OC(UTRACE_U_INIT);
+
+ /* initialize plugins */
+ uplug_init(status);
+ ucln_mutexedInit(initData, status);
- gICUInitialized = TRUE; /* TODO: don't set if U_FAILURE? */
- umtx_unlock(&gICUInitMutex);
UTRACE_EXIT_STATUS(*status);
}