Changeset 2965d18 in mainline for uspace/lib/c/generic/fibril.c


Ignore:
Timestamp:
2018-07-30T20:15:38Z (7 years ago)
Author:
Jiří Zárevúcky <jiri.zarevucky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d4b7b29
Parents:
8080262
git-author:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-30 19:53:13)
git-committer:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-30 20:15:38)
Message:

Add debug counter for rmutex locks.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/fibril.c

    r8080262 r2965d18  
    476476static void _fibril_switch_to(_switch_type_t type, fibril_t *dstf, bool locked)
    477477{
     478        assert(fibril_self()->rmutex_locks == 0);
     479
    478480        if (!locked)
    479481                futex_lock(&fibril_futex);
     
    633635errno_t fibril_wait_timeout(fibril_event_t *event, const struct timeval *expires)
    634636{
     637        assert(fibril_self()->rmutex_locks == 0);
     638
    635639        DPRINTF("### Fibril %p sleeping on event %p.\n", fibril_self(), event);
    636640
     
    713717void fibril_wait_for(fibril_event_t *event)
    714718{
     719        assert(fibril_self()->rmutex_locks == 0);
     720
    715721        (void) fibril_wait_timeout(event, NULL);
    716722}
     
    769775void fibril_yield(void)
    770776{
     777        if (fibril_self()->rmutex_locks > 0)
     778                return;
     779
    771780        fibril_t *f = _ready_list_pop_nonblocking(false);
    772781        if (f)
     
    789798int fibril_test_spawn_runners(int n)
    790799{
     800        assert(fibril_self()->rmutex_locks == 0);
     801
    791802        if (!multithreaded) {
    792803                _ready_debug_check();
Note: See TracChangeset for help on using the changeset viewer.