author | Petr Sumbera <petr.sumbera@oracle.com> |
Fri, 09 Nov 2012 13:12:25 -0800 | |
changeset 1044 | ab6b15638457 |
permissions | -rw-r--r-- |
1044
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
1 |
From 3f6cfbd1d38d0634a2ddcb9a0a13e1b5a2195a5e Mon Sep 17 00:00:00 2001 |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
2 |
From: Friedrich Haubensak <[email protected]> |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
3 |
Date: Wed, 12 Sep 2012 15:34:53 +0000 |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
4 |
Subject: Fix a thread portability problem |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
5 |
|
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
6 |
cannot compile libxml2-2.9.0 using studio 12.1 compiler on solaris 10 |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
7 |
|
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
8 |
I.M.O. structure initializer (as PTHREAD_ONCE_INIT) cannot be used in |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
9 |
a structure assignment anyway |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
10 |
--- |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
11 |
diff --git a/threads.c b/threads.c |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
12 |
index f206149..7e85a26 100644 |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
13 |
--- a/threads.c |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
14 |
+++ b/threads.c |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
15 |
@@ -146,6 +146,7 @@ struct _xmlRMutex { |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
16 |
static pthread_key_t globalkey; |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
17 |
static pthread_t mainthread; |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
18 |
static pthread_once_t once_control = PTHREAD_ONCE_INIT; |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
19 |
+static pthread_once_t once_control_init = PTHREAD_ONCE_INIT; |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
20 |
static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER; |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
21 |
#elif defined HAVE_WIN32_THREADS |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
22 |
#if defined(HAVE_COMPILER_TLS) |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
23 |
@@ -915,7 +916,7 @@ xmlCleanupThreads(void) |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
24 |
#ifdef HAVE_PTHREAD_H |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
25 |
if ((libxml_is_threaded) && (pthread_key_delete != NULL)) |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
26 |
pthread_key_delete(globalkey); |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
27 |
- once_control = PTHREAD_ONCE_INIT; |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
28 |
+ once_control = once_control_init; |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
29 |
#elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL)) |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
30 |
if (globalkey != TLS_OUT_OF_INDEXES) { |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
31 |
xmlGlobalStateCleanupHelperParams *p; |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
32 |
-- |
ab6b15638457
15825143 SUNBT7206540 Upgrade libxml2 to version 2.9.0
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
33 |
cgit v0.9.0.2 |