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

Side by Side Diff: fusl/src/thread/sem_timedwait.c

Issue 1714623002: [fusl] clang-format fusl (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: headers too Created 4 years, 10 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
OLDNEW
1 #include <semaphore.h> 1 #include <semaphore.h>
2 #include "pthread_impl.h" 2 #include "pthread_impl.h"
3 3
4 static void cleanup(void *p) 4 static void cleanup(void* p) {
5 { 5 a_dec(p);
6 » a_dec(p);
7 } 6 }
8 7
9 int sem_timedwait(sem_t *restrict sem, const struct timespec *restrict at) 8 int sem_timedwait(sem_t* restrict sem, const struct timespec* restrict at) {
10 { 9 pthread_testcancel();
11 » pthread_testcancel();
12 10
13 » if (!sem_trywait(sem)) return 0; 11 if (!sem_trywait(sem))
12 return 0;
14 13
15 » int spins = 100; 14 int spins = 100;
16 » while (spins-- && sem->__val[0] <= 0 && !sem->__val[1]) a_spin(); 15 while (spins-- && sem->__val[0] <= 0 && !sem->__val[1])
16 a_spin();
17 17
18 » while (sem_trywait(sem)) { 18 while (sem_trywait(sem)) {
19 » » int r; 19 int r;
20 » » a_inc(sem->__val+1); 20 a_inc(sem->__val + 1);
21 » » a_cas(sem->__val, 0, -1); 21 a_cas(sem->__val, 0, -1);
22 » » pthread_cleanup_push(cleanup, (void *)(sem->__val+1)); 22 pthread_cleanup_push(cleanup, (void*)(sem->__val + 1));
23 » » r = __timedwait_cp(sem->__val, -1, CLOCK_REALTIME, at, sem->__va l[2]); 23 r = __timedwait_cp(sem->__val, -1, CLOCK_REALTIME, at, sem->__val[2]);
24 » » pthread_cleanup_pop(1); 24 pthread_cleanup_pop(1);
25 » » if (r && r != EINTR) { 25 if (r && r != EINTR) {
26 » » » errno = r; 26 errno = r;
27 » » » return -1; 27 return -1;
28 » » } 28 }
29 » } 29 }
30 » return 0; 30 return 0;
31 } 31 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698