Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: net/third_party/nss/ssl/sslmutex.h

Issue 1511123006: Uprev NSS (in libssl) to NSS 3.21 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated deps Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/third_party/nss/ssl/sslinfo.c ('k') | net/third_party/nss/ssl/sslmutex.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* This Source Code Form is subject to the terms of the Mozilla Public 1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this 2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 #ifndef __SSLMUTEX_H_ 4 #ifndef __SSLMUTEX_H_
5 #define __SSLMUTEX_H_ 1 5 #define __SSLMUTEX_H_ 1
6 6
7 /* What SSL really wants is portable process-shared unnamed mutexes in 7 /* What SSL really wants is portable process-shared unnamed mutexes in
8 * shared memory, that have the property that if the process that holds 8 * shared memory, that have the property that if the process that holds
9 * them dies, they are released automatically, and that (unlike fcntl 9 * them dies, they are released automatically, and that (unlike fcntl
10 * record locking) lock to the thread, not to the process. 10 * record locking) lock to the thread, not to the process.
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 union { 60 union {
61 PRLock* sslLock; 61 PRLock* sslLock;
62 struct { 62 struct {
63 int mPipes[3]; 63 int mPipes[3];
64 PRInt32 nWaiters; 64 PRInt32 nWaiters;
65 } pipeStr; 65 } pipeStr;
66 } u; 66 } u;
67 } sslMutex; 67 } sslMutex;
68 typedef pid_t sslPID; 68 typedef pid_t sslPID;
69 69
70 #elif defined(XP_UNIX) /* other types of Unix */ 70 /* other types of unix, except OS X */
71 #elif defined(XP_UNIX) && !defined(DARWIN)
71 72
72 #include <sys/types.h> /* for pid_t */ 73 #include <sys/types.h> /* for pid_t */
73 #include <semaphore.h> /* for sem_t, and sem_* functions */ 74 #include <semaphore.h> /* for sem_t, and sem_* functions */
74 75
75 typedef struct 76 typedef struct
76 { 77 {
77 PRBool isMultiProcess; 78 PRBool isMultiProcess;
78 union { 79 union {
79 PRLock* sslLock; 80 PRLock* sslLock;
80 sem_t sem; 81 sem_t sem;
81 } u; 82 } u;
82 } sslMutex; 83 } sslMutex;
83 84
84 typedef pid_t sslPID; 85 typedef pid_t sslPID;
85 86
86 #else 87 #else /* no support for cross-process locking */
87 88
88 /* what platform is this ?? */ 89 /* what platform is this ?? */
89 90
90 typedef struct { 91 typedef struct {
91 PRBool isMultiProcess; 92 PRBool isMultiProcess;
92 union { 93 union {
93 PRLock* sslLock; 94 PRLock* sslLock;
94 /* include cross-process locking mechanism here */ 95 /* include cross-process locking mechanism here */
95 } u; 96 } u;
96 } sslMutex; 97 } sslMutex;
97 98
99 #ifdef DARWIN
100 typedef pid_t sslPID;
101 #else
98 typedef int sslPID; 102 typedef int sslPID;
103 #endif
99 104
100 #endif 105 #endif
101 106
102 #include "seccomon.h" 107 #include "seccomon.h"
103 108
104 SEC_BEGIN_PROTOS 109 SEC_BEGIN_PROTOS
105 110
106 extern SECStatus sslMutex_Init(sslMutex *sem, int shared); 111 extern SECStatus sslMutex_Init(sslMutex *sem, int shared);
107 112
108 /* If processLocal is set to true, then just free resources which are *only* ass ociated 113 /* If processLocal is set to true, then just free resources which are *only* ass ociated
109 * with the current process. Leave any shared resources (including the state of 114 * with the current process. Leave any shared resources (including the state of
110 * shared memory) intact. */ 115 * shared memory) intact. */
111 extern SECStatus sslMutex_Destroy(sslMutex *sem, PRBool processLocal); 116 extern SECStatus sslMutex_Destroy(sslMutex *sem, PRBool processLocal);
112 117
113 extern SECStatus sslMutex_Unlock(sslMutex *sem); 118 extern SECStatus sslMutex_Unlock(sslMutex *sem);
114 119
115 extern SECStatus sslMutex_Lock(sslMutex *sem); 120 extern SECStatus sslMutex_Lock(sslMutex *sem);
116 121
117 #ifdef WINNT 122 #ifdef WINNT
118 123
119 extern SECStatus sslMutex_2LevelInit(sslMutex *sem); 124 extern SECStatus sslMutex_2LevelInit(sslMutex *sem);
120 125
121 #endif 126 #endif
122 127
123 SEC_END_PROTOS 128 SEC_END_PROTOS
124 129
125 #endif 130 #endif
OLDNEW
« no previous file with comments | « net/third_party/nss/ssl/sslinfo.c ('k') | net/third_party/nss/ssl/sslmutex.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698