Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 25f6bddb in mainline


Ignore:
Timestamp:
2018-11-11T15:47:39Z (3 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master
Children:
0b8fad2
Parents:
f4cb6c5f
git-author:
Jakub Jermar <jakub@…> (2018-11-11 10:27:00)
git-committer:
Jakub Jermar <jakub@…> (2018-11-11 15:47:39)
Message:

Deallocate waitq's used by the loader

Location:
uspace
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/async/client.c

    rf4cb6c5f r25f6bddb  
    189189        fibril_mutex_initialize(&session_ns.mutex);
    190190        session_ns.exchanges = 0;
     191}
     192
     193void __async_client_fini(void)
     194{
     195        fibril_rmutex_destroy(&message_mutex);
    191196}
    192197
  • uspace/lib/c/generic/async/ports.c

    rf4cb6c5f r25f6bddb  
    299299                abort();
    300300}
     301
     302void __async_ports_fini(void)
     303{
     304        fibril_rmutex_destroy(&interface_mutex);
     305}
  • uspace/lib/c/generic/async/server.c

    rf4cb6c5f r25f6bddb  
    10281028}
    10291029
     1030void __async_server_fini(void)
     1031{
     1032        fibril_rmutex_destroy(&client_mutex);
     1033        fibril_rmutex_destroy(&notification_mutex);
     1034}
     1035
    10301036errno_t async_accept_0(ipc_call_t *call)
    10311037{
  • uspace/lib/c/generic/io/kio.c

    rf4cb6c5f r25f6bddb  
    6060        if (futex_initialize(&kio_buffer.futex, 1) != EOK)
    6161                abort();
     62}
     63
     64void __kio_fini(void)
     65{
     66        futex_destroy(&kio_buffer.futex);
    6267}
    6368
  • uspace/lib/c/generic/libc.c

    rf4cb6c5f r25f6bddb  
    153153}
    154154
     155void __libc_fini(void)
     156{
     157        __async_client_fini();
     158        __async_server_fini();
     159        __async_ports_fini();
     160
     161        __fibril_synch_fini();
     162        __fibrils_fini();
     163
     164        __malloc_fini();
     165
     166        __kio_fini();
     167}
     168
    155169void __libc_exit(int status)
    156170{
  • uspace/lib/c/generic/malloc.c

    rf4cb6c5f r25f6bddb  
    489489        if (!area_create(PAGE_SIZE))
    490490                abort();
     491}
     492
     493void __malloc_fini(void)
     494{
     495        fibril_rmutex_destroy(&malloc_mutex);
    491496}
    492497
  • uspace/lib/c/generic/private/async.h

    rf4cb6c5f r25f6bddb  
    9595
    9696extern void __async_server_init(void);
     97extern void __async_server_fini(void);
    9798extern void __async_client_init(void);
     99extern void __async_client_fini(void);
    98100extern void __async_ports_init(void);
     101extern void __async_ports_fini(void);
    99102
    100103extern errno_t async_create_port_internal(iface_t, async_port_handler_t,
  • uspace/lib/c/generic/private/fibril.h

    rf4cb6c5f r25f6bddb  
    7979
    8080extern void __fibrils_init(void);
     81extern void __fibrils_fini(void);
    8182
    8283extern void fibril_wait_for(fibril_event_t *);
  • uspace/lib/c/generic/private/malloc.h

    rf4cb6c5f r25f6bddb  
    3737
    3838extern void __malloc_init(void);
     39extern void __malloc_fini(void);
    3940
    4041#endif
  • uspace/lib/c/generic/thread/fibril.c

    rf4cb6c5f r25f6bddb  
    882882}
    883883
     884void __fibrils_fini(void)
     885{
     886        futex_destroy(&fibril_futex);
     887        futex_destroy(&ipc_lists_futex);
     888}
     889
    884890void fibril_usleep(usec_t timeout)
    885891{
  • uspace/lib/c/generic/thread/fibril_synch.c

    rf4cb6c5f r25f6bddb  
    9696        if (futex_initialize(&fibril_synch_futex, 1) != EOK)
    9797                abort();
     98}
     99
     100void __fibril_synch_fini(void)
     101{
     102        futex_destroy(&fibril_synch_futex);
    98103}
    99104
  • uspace/lib/c/include/fibril_synch.h

    rf4cb6c5f r25f6bddb  
    165165
    166166extern void __fibril_synch_init(void);
     167extern void __fibril_synch_fini(void);
    167168
    168169extern void fibril_mutex_initialize(fibril_mutex_t *);
  • uspace/lib/c/include/io/kio.h

    rf4cb6c5f r25f6bddb  
    4343
    4444extern void __kio_init(void);
     45extern void __kio_fini(void);
    4546extern errno_t kio_write(const void *, size_t, size_t *);
    4647extern void kio_update(void);
  • uspace/lib/c/include/libc.h

    rf4cb6c5f r25f6bddb  
    6262        __syscall6(p1, p2, p3, p4, p5, p6, id)
    6363
     64extern void __libc_fini(void);
     65
    6466#endif
    6567
  • uspace/srv/loader/main.c

    rf4cb6c5f r25f6bddb  
    5959#include <vfs/vfs.h>
    6060#include <vfs/inbox.h>
     61#include <libc.h>
    6162
    6263#ifdef CONFIG_RTLD
     
    357358        DPRINTF("Jump to entry point at %p\n", pcb.entry);
    358359
     360        __libc_fini();
    359361        __tcb_reset();
    360362        entry_point_jmp(prog_info.finfo.entry, &pcb);
Note: See TracChangeset for help on using the changeset viewer.