Changeset 32d2e60 in mainline


Ignore:
Timestamp:
2012-12-04T15:54:40Z (11 years ago)
Author:
Adam Hraska <adam.hraska+hos@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b7acf38
Parents:
d54b303
Message:

Compilation fixes of upgradable futexes.

Location:
uspace
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/rcubench/rcubench.c

    rd54b303 r32d2e60  
    7979}
    8080
     81
    8182static void  kernel_futex_bench(bench_t *bench)
    8283{
     
    136137       
    137138        /* Signal another thread completed. */
    138         futex_up(&bench->done_threads);
     139        _futex_up(&bench->done_threads);
    139140}
    140141
     
    170171        /* Wait for threads to complete. */
    171172        for (size_t k = 0; k < bench->nthreads; ++k) {
    172                 futex_down(&bench->done_threads);
     173                _futex_down(&bench->done_threads);
    173174        }
    174175}
  • uspace/lib/c/generic/futex.c

    rd54b303 r32d2e60  
    3636#include <atomic.h>
    3737
     38
    3839/** Initialize futex counter.
    3940 *
     
    5051#ifdef FUTEX_UPGRADABLE
    5152
    52 int _upgrade_futex = 0;
     53int _upgrade_futexes = 0;
    5354static futex_t upg_and_wait_futex = FUTEX_INITIALIZER;
    5455
     
    5758        _futex_down(&upg_and_wait_futex);
    5859       
    59         if (!_upgrade_futex) {
    60                 rcu_assign(_upgrade_futex, 1);
    61                 rcu_synchronize();
     60        if (!_upgrade_futexes) {
     61                rcu_assign(_upgrade_futexes, 1);
     62                _rcu_synchronize(BM_BLOCK_THREAD);
    6263        }
    6364       
  • uspace/lib/c/include/futex.h

    rd54b303 r32d2e60  
    5353#include <rcu.h>
    5454
    55 #define FUTEX_INITIALIZE(val) {{(val)}, {0}}
     55#define FUTEX_INITIALIZE(val) {{ (val) }, 0}
    5656
    5757#define futex_down(fut) \
     
    9494#else
    9595
    96 #define FUTEX_INITIALIZE(val) {{(val)}}
     96#define FUTEX_INITIALIZE(val) {{ (val) }}
    9797
    9898#define futex_down(fut)     (void)_futex_down((fut))
  • uspace/lib/urcu/rcu.c

    rd54b303 r32d2e60  
    223223{
    224224        assert(fibril_rcu.registered);
     225        /* assert(rcu_read_locked()); */
    225226       
    226227        /* Required by MB_FORCE_U */
Note: See TracChangeset for help on using the changeset viewer.