author | saurabh.vyas@oracle.com |
Thu, 30 Mar 2017 20:50:08 -0700 | |
changeset 7819 | b1bca76ec901 |
parent 512 | a83040d1e4ec |
permissions | -rw-r--r-- |
7819 | 1 |
Solaris-specific; not suitable for upstream |
2 |
||
3 |
--- ghostscript-9.20/base/gp_psync.c 2016-09-26 03:41:28.000000000 -0700 |
|
4 |
+++ ghostscript-9.20/base/gp_psync.c 2016-10-05 04:19:36.456692671 -0700 |
|
5 |
@@ -65,14 +65,18 @@ |
|
512
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
6 |
{ |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
7 |
pt_semaphore_t * const sem = (pt_semaphore_t *)sema; |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
8 |
int scode; |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
9 |
+ pthread_mutex_t tmp_mutex; |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
10 |
+ pthread_cond_t tmp_cond; |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
11 |
|
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
12 |
if (!sema) |
7819 | 13 |
return -1; /* semaphores are not movable */ |
512
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
14 |
sem->count = 0; |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
15 |
- scode = pthread_mutex_init(&sem->mutex, NULL); |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
16 |
+ scode = pthread_mutex_init(&tmp_mutex, NULL); |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
17 |
+ memcpy(&sem->mutex, &tmp_mutex, sizeof(pthread_mutex_t)); |
7819 | 18 |
if (scode == 0) |
19 |
{ |
|
20 |
- scode = pthread_cond_init(&sem->cond, NULL); |
|
21 |
+ scode = pthread_cond_init(&tmp_cond, NULL); |
|
22 |
+ memcpy(&sem->cond, &tmp_cond, sizeof(pthread_cond_t)); |
|
23 |
if (scode) |
|
24 |
pthread_mutex_destroy(&sem->mutex); |
|
25 |
} |
|
26 |
@@ -162,6 +166,7 @@ |
|
512
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
27 |
gp_monitor_open(gp_monitor * mona) |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
28 |
{ |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
29 |
pthread_mutex_t *mon; |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
30 |
+ pthread_mutex_t tmp_mutex; |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
31 |
int scode; |
7819 | 32 |
pthread_mutexattr_t attr; |
33 |
pthread_mutexattr_t *attrp = NULL; |
|
34 |
@@ -185,7 +190,8 @@ |
|
35 |
#endif |
|
512
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
36 |
|
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
37 |
mon = &((gp_pthread_recursive_t *)mona)->mutex; |
7819 | 38 |
- scode = pthread_mutex_init(mon, attrp); |
512
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
39 |
+ scode = pthread_mutex_init(&tmp_mutex, NULL); |
a83040d1e4ec
7076729 [cups] gs crashed and cups scheduler goes into maintenance
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff
changeset
|
40 |
+ memcpy(mon, &tmp_mutex, sizeof(pthread_mutex_t)); |
7819 | 41 |
if (attrp) |
42 |
(void)pthread_mutexattr_destroy(attrp); |
|
43 |
done: |