author | saurabh.vyas@oracle.com |
Mon, 01 Jun 2015 09:37:56 -0700 | |
changeset 4381 | 028ddffc4038 |
parent 1561 | 3b427cd1199e |
permissions | -rw-r--r-- |
1561
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
1 |
# 2013-02-07 Stefan Teleman <[email protected]> |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
2 |
# Not everything aligns on 4. |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
3 |
# |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
4 |
# * Fix Solaris alignment. (st) |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
5 |
# |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
6 |
--- gcc-4.7.3/libitm/config/posix/rwlock.h 2011-12-23 17:42:35.000000000 -0800 |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
7 |
+++ gcc-4.7.3/libitm/config/posix/rwlock.h 2013-02-25 14:28:47.945337684 -0800 |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
8 |
@@ -47,10 +47,14 @@ |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
9 |
|
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
10 |
class gtm_rwlock |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
11 |
{ |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
12 |
- pthread_mutex_t mutex; // Held if manipulating any field. |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
13 |
- pthread_cond_t c_readers; // Readers wait here |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
14 |
- pthread_cond_t c_writers; // Writers wait here for writers |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
15 |
- pthread_cond_t c_confirmed_writers; // Writers wait here for readers |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
16 |
+ pthread_mutex_t mutex |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
17 |
+ __attribute__((__aligned__(8))); // Held if manipulating any field. |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
18 |
+ pthread_cond_t c_readers |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
19 |
+ __attribute__((__aligned__(8))); // Readers wait here |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
20 |
+ pthread_cond_t c_writers |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
21 |
+ __attribute__((__aligned__(8))); // Writers wait here for writers |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
22 |
+ pthread_cond_t c_confirmed_writers |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
23 |
+ __attribute__((__aligned__(8))); // Writers wait here for readers |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
24 |
|
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
25 |
static const unsigned a_writer = 1; // An active writer. |
3b427cd1199e
17436986 integrate GCC 4.8.x
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
26 |
static const unsigned w_writer = 2; // The w_writers field != 0 |