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

Side by Side Diff: fusl/src/thread/__unmapself.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 "pthread_impl.h" 1 #include "pthread_impl.h"
2 #include "atomic.h" 2 #include "atomic.h"
3 #include "syscall.h" 3 #include "syscall.h"
4 /* cheat and reuse CRTJMP macro from dynlink code */ 4 /* cheat and reuse CRTJMP macro from dynlink code */
5 #include "dynlink.h" 5 #include "dynlink.h"
6 6
7 static volatile int lock; 7 static volatile int lock;
8 static void *unmap_base; 8 static void* unmap_base;
9 static size_t unmap_size; 9 static size_t unmap_size;
10 static char shared_stack[256]; 10 static char shared_stack[256];
11 11
12 static void do_unmap() 12 static void do_unmap() {
13 { 13 __syscall(SYS_munmap, unmap_base, unmap_size);
14 » __syscall(SYS_munmap, unmap_base, unmap_size); 14 __syscall(SYS_exit);
15 » __syscall(SYS_exit);
16 } 15 }
17 16
18 void __unmapself(void *base, size_t size) 17 void __unmapself(void* base, size_t size) {
19 { 18 int tid = __pthread_self()->tid;
20 » int tid=__pthread_self()->tid; 19 char* stack = shared_stack + sizeof shared_stack;
21 » char *stack = shared_stack + sizeof shared_stack; 20 stack -= (uintptr_t)stack % 16;
22 » stack -= (uintptr_t)stack % 16; 21 while (lock || a_cas(&lock, 0, tid))
23 » while (lock || a_cas(&lock, 0, tid)) 22 a_spin();
24 » » a_spin(); 23 __syscall(SYS_set_tid_address, &lock);
25 » __syscall(SYS_set_tid_address, &lock); 24 unmap_base = base;
26 » unmap_base = base; 25 unmap_size = size;
27 » unmap_size = size; 26 CRTJMP(do_unmap, stack);
28 » CRTJMP(do_unmap, stack);
29 } 27 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698