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

Side by Side Diff: nspr/pr/src/threads/combined/prulock.c

Issue 200653003: Update to NSPR 4.10.4. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/nss/
Patch Set: Created 6 years, 9 months 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 | Annotate | Revision Log
« no previous file with comments | « nspr/pr/src/threads/combined/prucv.c ('k') | nspr/pr/src/threads/prmon.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 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public 2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 5
6 #include "primpl.h" 6 #include "primpl.h"
7 7
8 #if defined(WIN95) 8 #if defined(WIN95)
9 /* 9 /*
10 ** Some local variables report warnings on Win95 because the code paths 10 ** Some local variables report warnings on Win95 because the code paths
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 153
154 154
155 PR_IMPLEMENT(PRLock*) PR_NewLock(void) 155 PR_IMPLEMENT(PRLock*) PR_NewLock(void)
156 { 156 {
157 PRLock *lock; 157 PRLock *lock;
158 158
159 if (!_pr_initialized) _PR_ImplicitInitialization(); 159 if (!_pr_initialized) _PR_ImplicitInitialization();
160 160
161 lock = PR_NEWZAP(PRLock); 161 lock = PR_NEWZAP(PRLock);
162 if (lock) { 162 if (lock) {
163 if (_PR_MD_NEW_LOCK(&lock->ilock) == PR_FAILURE) { 163 if (_PR_InitLock(lock) != PR_SUCCESS) {
164 » » PR_DELETE(lock); 164 PR_DELETE(lock);
165 » » return(NULL); 165 return NULL;
166 » } 166 }
167 PR_INIT_CLIST(&lock->links);
168 PR_INIT_CLIST(&lock->waitQ);
169 } 167 }
170 return lock; 168 return lock;
171 } 169 }
172 170
171 PRStatus _PR_InitLock(PRLock *lock)
172 {
173 if (_PR_MD_NEW_LOCK(&lock->ilock) != PR_SUCCESS) {
174 return PR_FAILURE;
175 }
176 PR_INIT_CLIST(&lock->links);
177 PR_INIT_CLIST(&lock->waitQ);
178 return PR_SUCCESS;
179 }
180
173 /* 181 /*
174 ** Destroy the given lock "lock". There is no point in making this race 182 ** Destroy the given lock "lock". There is no point in making this race
175 ** free because if some other thread has the pointer to this lock all 183 ** free because if some other thread has the pointer to this lock all
176 ** bets are off. 184 ** bets are off.
177 */ 185 */
178 PR_IMPLEMENT(void) PR_DestroyLock(PRLock *lock) 186 PR_IMPLEMENT(void) PR_DestroyLock(PRLock *lock)
179 { 187 {
188 _PR_FreeLock(lock);
189 PR_DELETE(lock);
190 }
191
192 void _PR_FreeLock(PRLock *lock)
193 {
180 PR_ASSERT(lock->owner == 0); 194 PR_ASSERT(lock->owner == 0);
181 » _PR_MD_FREE_LOCK(&lock->ilock); 195 _PR_MD_FREE_LOCK(&lock->ilock);
182 PR_DELETE(lock);
183 } 196 }
184 197
185 extern PRThread *suspendAllThread; 198 extern PRThread *suspendAllThread;
186 /* 199 /*
187 ** Lock the lock. 200 ** Lock the lock.
188 */ 201 */
189 PR_IMPLEMENT(void) PR_Lock(PRLock *lock) 202 PR_IMPLEMENT(void) PR_Lock(PRLock *lock)
190 { 203 {
191 PRThread *me = _PR_MD_CURRENT_THREAD(); 204 PRThread *me = _PR_MD_CURRENT_THREAD();
192 PRIntn is; 205 PRIntn is;
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 #endif /* _PR_GLOBAL_THREADS_ONLY */ 437 #endif /* _PR_GLOBAL_THREADS_ONLY */
425 } 438 }
426 439
427 /************************************************************************/ 440 /************************************************************************/
428 /************************************************************************/ 441 /************************************************************************/
429 /***********************ROUTINES FOR DCE EMULATION***********************/ 442 /***********************ROUTINES FOR DCE EMULATION***********************/
430 /************************************************************************/ 443 /************************************************************************/
431 /************************************************************************/ 444 /************************************************************************/
432 PR_IMPLEMENT(PRStatus) PRP_TryLock(PRLock *lock) 445 PR_IMPLEMENT(PRStatus) PRP_TryLock(PRLock *lock)
433 { return (PR_TestAndLock(lock)) ? PR_SUCCESS : PR_FAILURE; } 446 { return (PR_TestAndLock(lock)) ? PR_SUCCESS : PR_FAILURE; }
OLDNEW
« no previous file with comments | « nspr/pr/src/threads/combined/prucv.c ('k') | nspr/pr/src/threads/prmon.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698