Changeset 3dbe2d1f in mainline for uspace/libc/generic/io/vprintf.c


Ignore:
Timestamp:
2007-04-07T18:00:18Z (18 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2a98e58
Parents:
5b303ba
Message:

use futex instead of pthread serialization
synchronize only output to stdout
cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/libc/generic/io/vprintf.c

    r5b303ba r3dbe2d1f  
    3737#include <unistd.h>
    3838#include <io/printf_core.h>
     39#include <futex.h>
    3940
    40 int vprintf_write(const char *str, size_t count, void *unused);
     41atomic_t printf_futex = FUTEX_INITIALIZER;
    4142
    42 int vprintf_write(const char *str, size_t count, void *unused)
     43static int vprintf_write(const char *str, size_t count, void *unused)
    4344{
    4445        return write(1, str, count);
     
    5253int vprintf(const char *fmt, va_list ap)
    5354{
    54         struct printf_spec ps = {(int(*)(void *, size_t, void *))vprintf_write, NULL};
    55         return printf_core(fmt, &ps, ap);
    56 
     55        struct printf_spec ps = {(int(*)(void *, size_t, void *)) vprintf_write, NULL};
     56       
     57        futex_down(&printf_futex);
     58        int ret = printf_core(fmt, &ps, ap);
     59        futex_up(&printf_futex);
     60       
     61        return ret;
    5762}
    5863
Note: See TracChangeset for help on using the changeset viewer.