Changeset 183788f1 in mainline for uspace/libc/generic/io/vprintf.c
- Timestamp:
- 2007-04-09T16:17:25Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 36f19c0
- Parents:
- de33dab
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/libc/generic/io/vprintf.c
rde33dab r183788f1 37 37 #include <unistd.h> 38 38 #include <io/printf_core.h> 39 #include <futex.h> 40 #include <async.h> 41 42 static atomic_t printf_futex = FUTEX_INITIALIZER; 39 43 40 44 static int vprintf_write(const char *str, size_t count, void *unused) … … 50 54 int vprintf(const char *fmt, va_list ap) 51 55 { 52 struct printf_spec ps = {(int(*)(void *, size_t, void *)) vprintf_write, NULL}; 53 56 struct printf_spec ps = { 57 (int (*)(void *, size_t, void *)) vprintf_write, 58 NULL 59 }; 60 /* 61 * Prevent other threads to execute printf_core() 62 */ 63 futex_down(&printf_futex); 64 /* 65 * Prevent other pseudo threads of the same thread 66 * to execute printf_core() 67 */ 68 async_serialize_start(); 54 69 int ret = printf_core(fmt, &ps, ap); 55 70 async_serialize_end(); 71 futex_up(&printf_futex); 56 72 return ret; 57 73 }
Note:
See TracChangeset
for help on using the changeset viewer.