Changeset 40abf56 in mainline for uspace/lib/c/generic/io/kio.c


Ignore:
Timestamp:
2018-07-18T19:42:28Z (6 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:
9bde0d5
Parents:
0b05082
git-author:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-18 19:05:08)
git-committer:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-18 19:42:28)
Message:

Make sure that a thread with uninitialized TLS does not need to call malloc()
to initialize it.

For threads and tasks created by loader, we create TLS beforehand and pass
it to the child. For tasks spawned directly by the kernel, we require it is
a static executable and allocate the initial TLS using as_area_create() instead
of the libc allocator.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/io/kio.c

    r0b05082 r40abf56  
    5656errno_t kio_write(const void *buf, size_t size, size_t *nwritten)
    5757{
    58         futex_lock(&kio_buffer.futex);
     58        /* Using down/up instead of lock/unlock so we can print very early. */
     59        futex_down(&kio_buffer.futex);
    5960
    6061        const char *s = buf;
     
    8283        }
    8384
    84         futex_unlock(&kio_buffer.futex);
     85        futex_up(&kio_buffer.futex);
    8586        if (nwritten)
    8687                *nwritten = size;
Note: See TracChangeset for help on using the changeset viewer.